【发布时间】:2019-09-16 22:52:13
【问题描述】:
假设我有两个数组,并且我想计算两个相同形状矩阵的每两行之间的逐行差异,如下所示。这就是程序在 numpy 中的样子,我想在 pytorch 中复制同样的东西。
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([[3,4,5],[5,3,2]])
>>> c = a[np.newaxis,:,:] - b[:,np.newaxis,:]
>>> print(c)
[[[-2 -2 -2]
[ 1 1 1]]
[[-4 -1 1]
[-1 2 4]]]
顺便说一句,我使用 pytorch 尝试了同样的事情,但它不起作用。无论如何我们可以在pytorch中完成同样的事情
>>> import torch
>>> a = torch.from_numpy(a)
>>> b = torch.from_numpy(b)
>>> c1 = a[None,:,:]
>>> c2 = b[:,None,:]
>>> diff = c1 - c2
>>> print(diff.size())
torch.Size([1, 2, 3])
我实际上是在寻找torch.Size([2,2,3])。 (P.S. 我也尝试过从 pytorch 中解压,但它不起作用)。
【问题讨论】:
标签: python numpy pytorch tensor numpy-ndarray