请原谅我可能是一个简单的问题。
是否有一种优雅的,numpy方式在张量中以矩阵方式应用点积?
e.g。
import numpy as np
M = np.array(range(12)).reshape(2,2,3)
N = np.array(range(12)).reshape(2,3,2)
然后我会有以下结果
array([[[ 0, 1, 2],
[ 3, 4, 5]],
[[ 6, 7, 8],
[ 9, 10, 11]]])
array([[[ 0, 3],
[ 1, 4],
[ 2, 5]],
[[ 6, 9],
[ 7, 10],
[ 8, 11]]])
然后我想要矩阵元素点操作,
np.dot(M[0], N[0]), np.dot(M[1], N[1])
是否有优雅,笨拙的方式同时应用此操作?
提前致谢!
更新#1
对不起我没说清楚!我实际上想要两个张量的矩阵元素的叉积。
我的目标是使用像
这样的元素获得另一个张量result = (M[0].dot(N[0])
M[1].dot(N[1]))
这意味着如果我得到具有形状[L,u,v]的张量M和具有形状[L,v,w]的张量N.我希望得到形状[L,u,w]的结果。最后得到矩阵元素交叉乘积运算。
我找到了问题
np.dot product between two 3D matrices along specified axis
但我认为这不是我想要的答案。
但我找到了问题
Numpy elementwise product of 3d array
正是我想要的。
非常感谢@Brenlla,@ Divakar,@ hpaulj回答。