torch.squeeze() 和torch.unsqueeze()用法的通俗解释

squeeze是降维,unsqueeze是升维。
那升降维是啥意思呢,找一个二维数组(tensor)当例子

import torch
x = torch.tensor([[1, 2, 3],[1, 2, 3],[1, 2, 3]])
print(torch.unsqueeze(x,0))

输出结果为:

tensor([[[1, 2, 3],
         [1, 2, 3],
         [1, 2, 3]]])

原来是个三行三列的数组,记为(3,3)
可见整体升了一维,加了一个中括号(1,3,3)

print(torch.unsqueeze(x,1))

输出结果为:

tensor([[[1, 2, 3]],

        [[1, 2, 3]],

        [[1, 2, 3]]])

原来的第一维升了一维,(3,1,3)

print(torch.unsqueeze(x,2))

输出结果为:

tensor([[[1],
         [2],
         [3]],

        [[1],
         [2],
         [3]],

        [[1],
         [2],
         [3]]])

原来的第一维升了一维,(3,3,1)

squeeze是降维,和unsqueeze是相反的操作

print(torch.squeeze(torch.unsqueeze(x,2),2))

输出结果为:

tensor([[1, 2, 3],
        [1, 2, 3],
        [1, 2, 3]])

torch.unsqueeze(x,2)的结果为(3,3,1),torch.squeeze(input,2)发现它的第二维里面有一维的就把一维的取消掉,也就是中括号去掉。

print(torch.squeeze(torch.unsqueeze(x,2),1))

则不改变,因为torch.unsqueeze(x,2)得第一维里面是二维 ,所以不改变。只消去指定维里维数为1的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值