pytorch中的unsqueeze以及squeeze用法举例

本文详细介绍了PyTorch中unsqueeze和squeeze两个操作。unsqueeze用于在指定维度增加新维度,如将一维张量转换为二维;squeeze则用于删除大小为1的维度,帮助简化张量形状。通过具体代码示例展示了这两个函数的使用方法及其对张量尺寸的影响。
摘要由CSDN通过智能技术生成

unsqueeze:简单来说就是添加tensor的维度

举例说明:

代码

import torch
x = torch.tensor([1, 2, 3])#dim=1,即(3)
print('x: ', x)
print('x.size: ', x.size())
x1 = torch.unsqueeze(x, 1)#x1变为(3,1)的矩阵
print('x1: ', x1)
print('x1.size: ', x1.size())
x2 = torch.unsqueeze(x, 0)#x2变为(1,3)的矩阵
print('x2: ', x2)
print('x2.size: ', x2.size())

结果

解析:我们初始的张量为Tensor([1,2,3]),输出size为[3]。而我们进行unsqueeze操作,即torch.unsqueeze(x, 1),得到x1的size为[3,1]。当我们进行torch.unsqueeze(x, 0)时,x2的size为[1,3]。

 

squeeze:简单来说就是删减tensor的维度(只能dim=1的维度)

举例说明:

存在一个tensor X 的size为[1,2,3,4,1,5,1]

torch.squeeze(x).size:删除了所有dim=1的维度,即size = [2,3,4,5]

torch.squeeze(x, 0).size:删除了第一维度的维度,由于值为1,所以删除成功即size = [2,3,4,1,5,1]

torch.squeeze(x, 1).size:删除了第二维度的维度,由于值为2,不等于1 所以删除失败即size = [1,2,3,4,1,5,1]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值