pytorch中的外和等

iag*_*ito 2 python optimization torch pytorch

Numpy 为任何RxR -> R函数(如np.multiply.outer或 )提供优化的外部操作np.subtract.outer,其行为如下:

>>> np.subtract.outer([6, 5, 4], [3, 2, 1])
array([[3, 4, 5],
       [2, 3, 4],
       [1, 2, 3]])
Run Code Online (Sandbox Code Playgroud)

Pytorch 似乎没有提供这样的功能(或者我错过了)。
使用火炬张量最好/通常/最快/最干净的方法是什么?

Psi*_*dom 6

根据文件

许多 PyTorch 操作支持 NumPy 广播语义。

外部减法是从二维数组到一维数组的广播减法,因此基本上您可以将第一个数组重塑为 (3, 1),然后从中减去第二个数组:

x = torch.Tensor([6, 5, 4])
y = torch.Tensor([3, 2, 1])

x.reshape(-1, 1) - y
#tensor([[3., 4., 5.],
#        [2., 3., 4.],
#        [1., 2., 3.]])
Run Code Online (Sandbox Code Playgroud)