我如何用numpy计算n个张量与n个向量的点积
How do i compute the dot product of n tensors by n vectors with numpy
我想计算 N 个张量与 N 个向量的乘积。我确信有一种简单的 numpyic 方法可以做到这一点,但我没有成功想到一个。
本质上,我有形状为 (N, k, k) 的张量 ndarray 和形状为 (N, K) 的向量 ndarray,我想计算形状为 (N, k) s.t A[i] = tensors[i].dot(vecotrs[i].reshape(-1, 1))
[ 的数组 A =11=]
在我的具体情况下,k = 3,但我认为这无关紧要。
是否有使用 numpy 的简单方法?
使用np.einsum()
怎么样:
np.einsum('ijk,il->ij', a, b)
或:
np.einsum('ijk,il->ik', a, b)
取决于您实际指的是要计算总和的索引(现在是模棱两可的)。
我想计算 N 个张量与 N 个向量的乘积。我确信有一种简单的 numpyic 方法可以做到这一点,但我没有成功想到一个。
本质上,我有形状为 (N, k, k) 的张量 ndarray 和形状为 (N, K) 的向量 ndarray,我想计算形状为 (N, k) s.t A[i] = tensors[i].dot(vecotrs[i].reshape(-1, 1))
[ 的数组 A =11=]
在我的具体情况下,k = 3,但我认为这无关紧要。
是否有使用 numpy 的简单方法?
使用np.einsum()
怎么样:
np.einsum('ijk,il->ij', a, b)
或:
np.einsum('ijk,il->ik', a, b)
取决于您实际指的是要计算总和的索引(现在是模棱两可的)。