我有以下四个张量
对于
i
中的每个a
,都有一个对应的T[i]
,其形状为(t, r)
。我需要执行
np.einsum
来产生以下结果(pred
):pred = np.einsum('hr, ar, dr, tr ->hadt', H, A, D, T[0])
for i in range(a):
pred[:, i:i+1, :, :] = np.einsum('hr, ar, dr, tr ->HADT', H, A[i:i+1], D, T[i])
但是,我想在不使用for循环的情况下进行此计算。原因是我使用的
autograd
目前不适用于项目分配! 最佳答案
一种方法是对T
使用所有尺寸-
np.einsum('Hr, Ar, Dr, ATr ->HADT', H, A, D, T)
因为我们需要在所有输入上求和减少axis-
r
,同时将所有其他(轴)保留在输出中,所以我看不到任何中间方法,也没有引入任何基于点的工具来利用BLAS 。关于python - 向量化numpy.einsum,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47582442/