torch.stack()用法

torch.stack((tensor1, tensor2,…), dim=x, out=None)
作用:于将tensor进行按照指定维度进行堆叠。

一维tensor

w = torch.arange(4)
h = torch.tensor([0.6, 0.7, 0.8, 0.2])
torch.stack([-w, -h, w, h], dim=0)
>>>
tensor([[ 0.00, -1.00, -2.00, -3.00],
        [-0.60, -0.70, -0.80, -0.20],
        [ 0.00,  1.00,  2.00,  3.00],
        [ 0.60,  0.70,  0.80,  0.20]])
# dim = 1
w = torch.arange(4)
h = torch.tensor([0.6, 0.7, 0.8, 0.2])
torch.stack((w, h), dim=1)
>>>
tensor([[0.00, 0.60],
        [1.00, 0.70],
        [2.00, 0.80],
        [3.00, 0.20]])

二维tensor

dim = 1时,将tensor1[0]和tensor2[0]进行堆叠;
dim = 2时,将tensor1[0][0]和tensor2[0][0]进行堆叠;

w = torch.arange(12).reshape(3, 4)
h = -torch.arange(12).reshape(3, 4)
c = torch.stack((w, h), dim=0)
>>>
tensor([[[  0,   1,   2,   3],
         [  4,   5,   6,   7],
         [  8,   9,  10,  11]],

        [[  0,  -1,  -2,  -3],
         [ -4,  -5,  -6,  -7],
         [ -8,  -9, -10, -11]]])
>>> c.shape
>torch.Size([2, 3, 4])
-----------------------------------------------
b = torch.stack((w, h), dim=1)
>>>
tensor([[[  0,   1,   2,   3],
         [  0,  -1,  -2,  -3]],

        [[  4,   5,   6,   7],
         [ -4,  -5,  -6,  -7]],

        [[  8,   9,  10,  11],
         [ -8,  -9, -10, -11]]])
>>>b.shape
>torch.Size([3, 2, 4])
-----------------------------------------------
d = torch.stack((w, h), dim=2)
print(d)
print(d.shape)
>>>
tensor([[[  0,   0],
         [  1,  -1],
         [  2,  -2],
         [  3,  -3]],

        [[  4,  -4],
         [  5,  -5],
         [  6,  -6],
         [  7,  -7]],

        [[  8,  -8],
         [  9,  -9],
         [ 10, -10],
         [ 11, -11]]])
torch.Size([3, 4, 2])
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值