pytorch 两个不同纬度的Tensor相减是怎么实现的?

pytorch 两个不同纬度的Tensor相减是怎么实现的?

dim小的会复制到和dim大的一方相同,再相减.
例子:

>>> import torch
>>> d = torch.Tensor([[[1,2,3],[4,5,6],[7,8,9]]])
>>> d
tensor([[[1., 2., 3.],
         [4., 5., 6.],
         [7., 8., 9.]]])
>>> d.shape
torch.Size([1, 3, 3])
>>> f = torch.Tensor([[[1]], [[2]], [[3]]])
>>> f
tensor([[[1.]],

        [[2.]],

        [[3.]]])
>>> f.shape
torch.Size([3, 1, 1])        
>>> d-f
tensor([[[ 0.,  1.,  2.],
         [ 3.,  4.,  5.],
         [ 6.,  7.,  8.]],

        [[-1.,  0.,  1.],
         [ 2.,  3.,  4.],
         [ 5.,  6.,  7.]],

        [[-2., -1.,  0.],
         [ 1.,  2.,  3.],
         [ 4.,  5.,  6.]]])
>>> (d-f).shape
torch.Size([3, 3, 3])

注意:复制仅限于dim=1的时候。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值