全矢量化切片矩阵乘法
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)
我分别有一个 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)