【pytorch算子】torch.squeeze 和 torch.unsqueeze 的用法

本文介绍了PyTorch中torch.squeeze()和unsqueeze()两个函数的用法。squeeze()用于移除Tensor中维度为1的元素,unsqueeze()则在指定位置插入一个维度为1的新维度。通过代码示例展示了这两个函数如何改变Tensor的形状,并解释了在不同情况下的操作效果。
摘要由CSDN通过智能技术生成

torch.squeeze() 用法:

对 Tensor 进行降维,去掉维数为 1 的的维度。

a.squeeze() 是将 a 中所有为 1 的维度删掉,不为 1 的维度没有影响。
a.squeeze(n) 是将 a 中第 n 个维度中维数为 1 的维度删掉,即若 dim(n) = 1,则删掉第 n 维;若 dim(n) != 1,则保留第 n 维,不做任何操作。

torch.unsqueeze() 用法:

对 Tensor 进行扩维,扩大的维数为 1 。

a.squeeze(n) 是将 a 中第 n 个维度的维数改为 1 ,其他维度依次增加 1,即扩充第 n 维。

代码示例

a=torch.tensor([
    [[1,2,3,5]],
    [[2,3,6,5]],
    [[5,9,9,6]]])      # a.shape=torch.Size([3, 1, 4])
b=a.squeeze()    # 去掉维度为1的维度, b.shape=torch.Size([3, 4])
c=b.unsqueeze(0)   # 扩充第0维, b.shape=torch.Size([1, 3, 4])
c=b.unsqueeze(1)   # 扩充第1维, b.shape=torch.Size([3, 1, 4])
c=b.unsqueeze(2)   # 扩充第2维, b.shape=torch.Size([3, 4, 1])


d=torch.tensor([[[1,2],[2,3]],
                [[5,6],[5,6]],
                [[7,5],[7,5]]])    # d.shape=torch.Size([3, 2, 2])
e=d.squeeze()    # d中没有维数为1的维度,因此shape不变,e.shape=torch.Size([3, 2, 2])
f=d.squeeze(1)   # d中第1维的维数不为1,因此无法降维,shape不变,e.shape=torch.Size([3, 2, 2])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ctrl A_ctrl C_ctrl V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值