两个 3D 矩阵沿轴的 2D 点积

2D dot product on two 3D matrix along an aixs

给定两个矩阵A和B,维度分别为(x,y,z)和(y,x,z),如何对两个矩阵的前两个维度进行点积?结果应具有 (x,x,z) 的维度。

谢谢!

使用 np.einsum 字面上相同的字符串表达式 -

np.einsum('xyz,yiz->xiz',a,b) # a,b are input arrays

请注意,我们使用 yiz 作为第二个数组的字符串表示法,而不是 yxz,因为 i 应该是输出数组中的新维度,并且不与我们已经分配 x 的第一个数组的第一个轴对齐。要对齐的维度被赋予相同的字符串符号。