複数の行列の掛け算を同時に行う
Python
numpyかpytorchで複数の行列の掛け算をforループを用いずに同時に行いたいです。
例えば10×100の異なる行列が5個と100×100の行列が一つあるとします。
import numpy as np
a = np.random.rand(5,10,100)
b = np.random.rand(100,100)
aが10×100の異なる5個の行列でbが100×100の行列です。
c= np.zeros((5,10,100))
for i in range(len(a)):
c[i] = np.dot(a[i],b)
もしくはpytorchで
import torch
c = torch.zeros((5,10,100))
a = torch.randn(5,10,100)
b = torch.randn(100,100)
for i in range(len(a)):
c[i] = torch.mm(a[i],b)
何か案があれば教えていただけると幸いです。
このようにfor文でなら実現できますがaの個数が5から増えると遅くなってしまいます。
行列bは同じものなので並行して行列の掛け算を行いたいです。