【发布时间】:2019-06-26 12:05:34
【问题描述】:
我需要计算两个矩阵的点积。可能 tensordot 会完成这项工作,但是我正在努力找出确切的解决方案。
简单的选择
res = np.dot(x, fullkernel[:, :-1].transpose())
工作正常,其中 x 的形状为 (9999,),fullkernel 的形状为 (980,10000),res 的形状为 (1, 980)。
现在我需要用二维做类似的事情。因此,我的 x 现在具有形状 (9999, 2),fullkernel (2, 980, 10000)。
从字面上看,我希望我的结果“res”是二维的,其中每一个都是一列 x 和一维全内核的点积。
【问题讨论】:
-
res、(2, 980)或(2, 2, 980)的具体形状应该是什么? -
嗨。感谢您的回复。我已经成功了一点,但还没有。现在我使用解决方案“res = np.dot(x.T, fullkernel[:, :-1, :])”,其中 x (9998,2) 和 fullkernel 是 (2,9999,980),这给了我 res ( 2,2,980),这不是我想要的。因为(2,2.n)表示x的每一列都乘以fullkernel的每一维。我想得到形状 (2,1,980) 的 res,所以 x 的第一列乘以全内核的第一维,第二列乘以第二。
标签: python numpy matrix dot-product