Pytorch torch.matmul给出运行时错误

Pytorch torch.matmul给出运行时错误,pytorch,runtime,Pytorch,Runtime,我有两个张量 t1=torch.Size([400, 32, 400]) t2= torch.Size([400, 32, 32]) 当我执行此命令时 torch.matmul(t1,t2) 我得到了这个错误RuntimeError: 预计张量在维度1处的大小为400,但在维度1处的大小为32 参数#2'batch2'(检查bmm的参数时) 任何帮助都将不胜感激因为矩阵乘法的顺序是错误的,所以您会得到错误 应该是: a=torch.randn(400,32400) b=火炬的随机数(400,3

我有两个张量

t1=torch.Size([400, 32, 400])
t2= torch.Size([400, 32, 32])
当我执行此命令时
torch.matmul(t1,t2)

我得到了这个错误RuntimeError:

预计张量在维度1处的大小为400,但在维度1处的大小为32 参数#2'batch2'(检查bmm的参数时)


任何帮助都将不胜感激

因为矩阵乘法的顺序是错误的,所以您会得到错误

应该是:

a=torch.randn(400,32400)
b=火炬的随机数(400,32,32)
out=火炬。马特穆尔(b,a)#你表演了火炬。马特穆尔(a,b)
#您还可以使用下面的代码执行更简单版本的矩阵乘法
out=b@a

非常感谢@planet,但是我需要做torch.matmul(a,b),或者out=a@b,有没有好的方法来重塑我的形状,这样的话,你可以这样做:
a=torch.randn(400,32400)。permute(0,2,1)
然后你可以做
out=a@b