针对结果矩阵中的每个位置,我希望存储相应行和列在参数矩阵中的元素乘积,这将形成一个向第三维度延伸的向量,而不是储存它们的点积。
一种思路是将参数矩阵转换为带有向量条目的向量,然后取它们的外积,但我也不确定如何做。
编辑:
在看到答复之前,我已经想出了解决方案:
def newdot(A, B):
A = A.reshape((1,) + A.shape)
B = B.reshape((1,) + B.shape)
A = A.transpose(2, 1, 0)
B = B.transpose(1, 0, 2)
return A * B
我正在做的是将需要进行外积计算的每一行和列对分解,并形成两个列表,然后并行地将它们的内容矩阵相乘。
m1.A[:, None, :]
替换你的 reshape,这样更加简洁和易读(我认为)。 - Jaime