我如何用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)

取决于您实际指的是要计算总和的索引(现在是模棱两可的)。