文章目录

  • 1. 理论简介
  • 2. 举例
    • 2.1 squeeze
      • (1)x.squeeze()
      • (2)x.squeeze(n)
      • (3)torch.squeeze(x)
    • 2.2 unsqueeze
      • (1)x.unsqueeze(n)
      • (2)torch.unsqueeze(x,n)

1. 理论简介

  • squeeze

squeeze的作用是对tensor变量进行维度压缩,去除维数为1的维度。

例如:一个3×2×1×2×1的tensor,squeeze()之后便成了3×2×2。存储的数据并没有发生变化,但是去除了“多余”的维度信息。

  • unsqueeze

unsqueeze的作用是对数据维度进行扩充,给指定位置加上维数为1的维度

例如:原本有个三行的数据,也就是说,它的维度为(3, 1),在0的位置加了一维,那么它的维度变为(1, 3, 1)

请注意,不管是squeeze还是unsqueeze操作,都不会影响原先的张量维度,所以下面的操作中,都将压缩和解压缩操作赋值给了原张量。

2. 举例

2.1 squeeze

(1)x.squeeze()

所有1维数据都进行压缩。

import torchx = torch.rand(4, 3, 1, 3, 1)
print(x.size())
x = x.squeeze()
print(x.size())

输出:

torch.Size([4, 3, 1, 3, 1])
torch.Size([4, 3, 3])

(2)x.squeeze(n)

指定压缩第n位,如果它的维数为1,则压缩,反之不对该维度操作。

import torchx = torch.rand(3, 2, 1, 2, 1)
print(x.size()) #torch.Size([3, 2, 1, 2, 1])
x = x.squeeze(0) #第0位的维度为3,不进行压缩
print(x.size()) #torch.Size([3, 2, 1, 2, 1])
x = x.squeeze(2)#第2位的维度为1,进行压缩
print(x.size()) # torch.Size([3, 2, 2, 1])

输出:

torch.Size([3, 2, 1, 2, 1])
torch.Size([3, 2, 1, 2, 1])
torch.Size([3, 2, 2, 1])

(3)torch.squeeze(x)

pytorch中的torch.squeeze(x)方法与上面提到的Tensor对象中的方法作用相同,只不过是语法上有细微的差别。

import torchx = torch.rand(3, 2, 1, 2, 1)
x = torch.squeeze(x) # 同x.squeeze()
print(x.size())
x = torch.squeeze(x, 2) # 同x.squeeze(2)
print(x.size())

输出:

torch.Size([3, 2, 2])
torch.Size([3, 2, 2])

2.2 unsqueeze

(1)x.unsqueeze(n)

x.unsqueeze(n)表示在第n位的位置添加1维。

import torchx = torch.rand(3, 2)
x = x.unsqueeze(1)
print(x.size())

输出:

torch.Size([3, 1, 2])

(2)torch.unsqueeze(x,n)

torch.unsqueeze(x,n)作用同x.unsqueeze(n),都表示在第n位的位置添加1维,只不过语法稍有区别。

import torchx = torch.rand(3, 2)
x = torch.unsqueeze(x, 1)
print(x.size())

输出:

torch.Size([3, 1, 2])

pytorch中的squeeze和unsqueeze的用法小结相关推荐

  1. PyTorch中的squeeze()和unsqueeze()详解与应用案例

    文章目录 1.torch.squeeze 2.torch.unsqueeze 3.给一个使用上述两个函数,并进行一次卷积的例子 附上官网地址: https://pytorch.org/docs/sta ...

  2. pytorch中的squeeze和unsqueeze

    squeeze:压缩,要减少维度. unsqueeze:解压缩,要增加维度. torch.squeeze(input),那么会把input中所有维度长度为1的维度去掉. torch.squeeze(i ...

  3. pytorch中的squeeze和unsqueeze函数的使用

    应用场景:当我们进行深度学习使用Image函数导入图片时,默认它的维度为[C, H, W],此时根据模型的需要导入batch这一维度. 部分程序 # 导入要测试的图像(自己找的,不在数据集中),放在源 ...

  4. pytorch中squeeze()与unsqueeze()的用法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.pytorch中的数据维度 二.squeeze()与unsqueeze()用法 1.squeeze() 2.unsque ...

  5. Pytorch view()、squeeze()、unsqueeze()、torch.max()

    本篇博客主要向大家介绍Pytorch中view().squeeze().unsqueeze().torch.max()函数,这些函数虽然简单,但是在 神经网络编程总却经常用到,希望大家看了这篇博文能够 ...

  6. 【增减维度】numpy和torch中的squeeze、unsqueeze理解

    文章目录 1 为何要增减维度 2 numpy中的squeeze 函数 3 torch中的squeeze 函数 4 torch中的unsqueeze 函数 1 为何要增减维度 神经网络conv2d的输入 ...

  7. js中substr,substring,indexOf,lastIndexOf的用法小结

    2019独角兽企业重金招聘Python工程师标准>>> js中substr,substring,indexOf,lastIndexOf等的用法 1.substr substr(sta ...

  8. “约见”面试官系列之常见面试题之第五十九篇之js中push(),pop(),unshift(),shift()的用法小结 (建议收藏)

    1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...

  9. js中push(),pop(),unshift(),shift()的用法小结

    1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...

最新文章

  1. [LeetCode]42. Trapping Rain Water雨水填坑
  2. JXJJOI2018_T1_market
  3. http请求gmt时间_从Chrome源码看HTTP
  4. 回顾小程序2018年三足鼎立历程,2019年BAT火力全开
  5. js(javascript)之浏览器控制台使用
  6. 所选元素非联通_非固化橡胶沥青防水涂料与耐根穿刺防水卷材(沥青基)施工要点...
  7. c语言正则表达式_CS143:编译原理|PA2:正则表达式和词法分析
  8. mysql ssl jdbc_【MySQLSSLJAVA】关于MySQL开启SSL后,jdbc的配置
  9. PHP踩坑:对象的引用
  10. 动软代码生成器注意事项-Sql注入
  11. apicloud开发之使用usb真机同步到安卓虚拟机
  12. 在线购物系统后台登录界面html代码,电子商城(购物网站)html模板源码
  13. HTML学生个人网站作业设计——HTML+CSS+JavaScript简单的大学生书店网页制作(13页) web期末作业设计网页 web结课作业的源码 web网页设计实例作业
  14. JavaScript --------WebS APIs学习之DOM(三)
  15. 推荐一本 Bulma 的书《使用Bulma来创建用户界面》
  16. python opencv图片拼接
  17. 近世代数 笔记与题型连载 第十一章(正规子群与商群)
  18. InfoPath与SharePoint之(一) InfoPath和SharePoint List
  19. Python项目实战 3.4:异步消息队列.Celery+RabbitMQ
  20. js 转json_2020年了为啥 还要学 Node.js

热门文章

  1. NOIP 2002 普及组第二题
  2. php操作sqlserver视频教程,php 连接 sqlserver
  3. 从头到尾创建一个vue2项目
  4. java素人,JavaBean - 素人派的个人页面 - OSCHINA - 中文开源技术交流社区
  5. Tensorflow数据读取之tfrecord
  6. 《简易个税计算器》技术支持网址(URL)
  7. 【倍增算法】CF379F New Year Tree 题解
  8. 挑灯夜读——Java(二):面向对象
  9. linux centos7 zend,Linux(centos7)如何安装Zend Optimizer Zend Guard Loader
  10. 极速体验docker容器健康