Pytorch中的squeeze()和unsqueeze()函数

在numpy库中,经常会出现“秩为1的一维数组”(come from 吴恩达的深度学习,目前还没有搞清楚numpy中如此设计的意图)。比如:

        

注意这里的a的shape是[3] ,既不是 [1,3] 也不是 [3,1]。这就说明它既不是行向量也不是列向量,只是一个数组。

但是我们可以用squeeze()和unsqueeze()对其进行操作,比如:

       

在对这两个函数讲解之前,我们先统一一下定义:

In  : x.shape
Out: torch.Size( [ a , b , c ] )

这里我们说a是第一个维度(表示第一个维度的数量是a),b是第二个维度(表示第一个维度的数量是b),c是第三个维度(表示第三个维度的数量是c)

简而言之,unsqueeze(arg)是增添第arg个维度为1,以插入的形式填充。比如:

       

       

相反,squeeze(arg)是删除第arg个维度(如果当前维度不为1,则不会进行删除),比如:

       

 

转载于:https://www.cnblogs.com/JeasonIsCoding/p/10162250.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值