【发布时间】:2016-07-02 01:18:39
【问题描述】:
我正在尝试使用tensordot 在 numpy 中获取张量点积,但我不确定我应该如何重塑我的数组以实现我的计算。 (总的来说,我对张量的数学还是很陌生。)
我有
arr = np.array([[[1, 1, 1],
[0, 0, 0],
[2, 2, 2]],
[[0, 0, 0],
[4, 4, 4],
[0, 0, 0]]])
w = [1, 1, 1]
我想在axis=2 上取一个点积,这样我就有了矩阵
array([[3, 0, 6],
[0, 12, 0]])
什么是正确的 numpy 语法? np.tensordot(arr, [1, 1, 1], axes=2) 似乎引发了ValueError。
【问题讨论】:
-
更好的示例可能是
w = [1,2,3]之类的,只是为了有一些变化。 -
我设置了
w = [1,1,1]以表明我们只是试图将每个内部维度内的元素相加。 -
如果您没有像
w = [1,1,1]那样缩放,那么它只是在arr中沿axis=2添加元素。因此,使用特定的w,您实际上不需要任何点积,只需将arr的元素与axis=2相加即可。
标签: python numpy tensor dot-product