全矢量化切片矩阵乘法

fulluy vectorized slice-wise matrix multiplication

我分别有一个 128X3X3 和一个 128X3X5 的 3D NumPy 矩阵 A 和 B 我想将 A 的每个 3×3 切片乘以 B 的每个 3×5 切片,最终得到一个维度为 128X3X5 的矩阵 C。 所有这些肯定都必须完全矢量化,并且没有循环。 谢谢!

看起来你想要 matrix product(因为你不能直接将不同形状的矩阵相乘,就像你说的那样)。所以你可以使用 @ 运算符:

A@B

np.matmul:

np.matmul(A, B)

检查:

A = np.random.random((128, 3, 3))
B = np.random.random((128, 3, 5))

(A@B).shape
#(128, 3, 5)