pytorch学习之---squeeze()和unsqueeze()函数功能及使用

首先这个squeeze单词啥意思:

1.squeeze(1)和squeeze(-1)作用:

两者的效果一样,都是给张量tensor降维,但不是啥张量都可以用这两个函数来降维,它只能降维一种情况下张量的维度。就是我的张量tensor是一个n*1维度的张量,例如:张量[[1], [2], [3]]是一个3*1维的,调用这两个函数后效果如图:

但是如果不是n*1的这种2维张量的话,如本就是1维的,或者m*n(其中m和n都是大于1的)这种的话,调用这个函数一点效果没有。

注意:如果小括号里不是1怎么办?这个括号里的1是什么意思?具体而言,如果一个张量有四个维度的,squeeze(index)会将张量中第index维度,且大小为1的维度进行去除,从而减少张量的维度。如果index是负整数,那就是倒数第index个维度。

2.squeeze(0)的作用:

当张量是一个1*n维度的张量时,例如:张量[[1, 2, 3]]是一个1*3维的,调用这个函数后的效果图如下:

但是如果不是1*n的这种2维张量的话,如本就是1维的,或者m*n(其中m和n都是大于1的)这种的话,调用这个函数一点效果没有。

3.unsqueeze(1)和unsqueeze(-1)作用:

和squeeze(1)和squeeze(-1)是反着的,如果我就是一个一维的张量,我调用这个函数,我就变成上面第1节中的原本的样子。

注意:如果小括号里不是1怎么办?这个括号里的1是什么意思?具体而言,如果一个张量有五个维度的,unsqueeze(index)会在该张量的第index维度上增加一个维度值为1的维度,例如维度是(3, 2, 1),index是2的话,就会解压成(3, 2, 1, 1)。如果index是负整数,那就是倒数第index个维度。

例如:张量[1.2, -5.6, 9, 0.004]的维度是(4,),调用这两个函数后的效果为:维度变成(4,1)

如果我就是一n*m的2维的张量,调用这两个函数后的效果是啥呢?

例如:

4.unsqueeze(0)作用:

和第2节中的squeeze(0)的作用是反这的。

例如:张量[1.2, -5.6, 9, 0.004],调用这个函数后的效果为:

  • 70
    点赞
  • 246
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值