矩阵乘法与使用真相法
问题描述:
我想用以下维度乘以两个阵列: A =(10,1),B =(1,1,10,18)使用艾苏姆。矩阵乘法与使用真相法
tmp = np.einsum('pi,klpy ->kliy', A, B)
我是否需要切换B阵列的尺寸才能获得正确的结果? 我的意思是:
tmp = np.einsum('pi,lkyp ->kliy', A, B)
答
你知不知道这两个结果有不同的形状? 如果是这样,你应该很可能知道你期望的形状。
import numpy as np
A=np.arange(10).reshape(1,10)
B=np.arange(180).reshape(1,1,10,18)
np.einsum('pi,klpy ->kliy', A, B).shape
np.einsum('pi,lkyp ->kliy', A, B).shape
结果
np.einsum('pi,klpy ->kliy', A, B).shape
Out: (1, 1, 10, 18)
np.einsum('pi,lkyp ->kliy', A, B).shape
Out: (1, 1, 10, 10)
非常确信第二甚至不会工作 –
什么是正确的决定,真的。你的轴代表什么具体的东西?或者你可以写成一个你想实现的操作的循环? –