pytorch中的squeeze和unsqueeze的用法小结
文章目录
- 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的用法小结相关推荐
- PyTorch中的squeeze()和unsqueeze()详解与应用案例
文章目录 1.torch.squeeze 2.torch.unsqueeze 3.给一个使用上述两个函数,并进行一次卷积的例子 附上官网地址: https://pytorch.org/docs/sta ...
- pytorch中的squeeze和unsqueeze
squeeze:压缩,要减少维度. unsqueeze:解压缩,要增加维度. torch.squeeze(input),那么会把input中所有维度长度为1的维度去掉. torch.squeeze(i ...
- pytorch中的squeeze和unsqueeze函数的使用
应用场景:当我们进行深度学习使用Image函数导入图片时,默认它的维度为[C, H, W],此时根据模型的需要导入batch这一维度. 部分程序 # 导入要测试的图像(自己找的,不在数据集中),放在源 ...
- pytorch中squeeze()与unsqueeze()的用法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.pytorch中的数据维度 二.squeeze()与unsqueeze()用法 1.squeeze() 2.unsque ...
- Pytorch view()、squeeze()、unsqueeze()、torch.max()
本篇博客主要向大家介绍Pytorch中view().squeeze().unsqueeze().torch.max()函数,这些函数虽然简单,但是在 神经网络编程总却经常用到,希望大家看了这篇博文能够 ...
- 【增减维度】numpy和torch中的squeeze、unsqueeze理解
文章目录 1 为何要增减维度 2 numpy中的squeeze 函数 3 torch中的squeeze 函数 4 torch中的unsqueeze 函数 1 为何要增减维度 神经网络conv2d的输入 ...
- js中substr,substring,indexOf,lastIndexOf的用法小结
2019独角兽企业重金招聘Python工程师标准>>> js中substr,substring,indexOf,lastIndexOf等的用法 1.substr substr(sta ...
- “约见”面试官系列之常见面试题之第五十九篇之js中push(),pop(),unshift(),shift()的用法小结 (建议收藏)
1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...
- js中push(),pop(),unshift(),shift()的用法小结
1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...
最新文章
- [LeetCode]42. Trapping Rain Water雨水填坑
- JXJJOI2018_T1_market
- http请求gmt时间_从Chrome源码看HTTP
- 回顾小程序2018年三足鼎立历程,2019年BAT火力全开
- js(javascript)之浏览器控制台使用
- 所选元素非联通_非固化橡胶沥青防水涂料与耐根穿刺防水卷材(沥青基)施工要点...
- c语言正则表达式_CS143:编译原理|PA2:正则表达式和词法分析
- mysql ssl jdbc_【MySQLSSLJAVA】关于MySQL开启SSL后,jdbc的配置
- PHP踩坑:对象的引用
- 动软代码生成器注意事项-Sql注入
- apicloud开发之使用usb真机同步到安卓虚拟机
- 在线购物系统后台登录界面html代码,电子商城(购物网站)html模板源码
- HTML学生个人网站作业设计——HTML+CSS+JavaScript简单的大学生书店网页制作(13页) web期末作业设计网页 web结课作业的源码 web网页设计实例作业
- JavaScript --------WebS APIs学习之DOM(三)
- 推荐一本 Bulma 的书《使用Bulma来创建用户界面》
- python opencv图片拼接
- 近世代数 笔记与题型连载 第十一章(正规子群与商群)
- InfoPath与SharePoint之(一) InfoPath和SharePoint List
- Python项目实战 3.4:异步消息队列.Celery+RabbitMQ
- js 转json_2020年了为啥 还要学 Node.js
热门文章
- NOIP 2002 普及组第二题
- php操作sqlserver视频教程,php 连接 sqlserver
- 从头到尾创建一个vue2项目
- java素人,JavaBean - 素人派的个人页面 - OSCHINA - 中文开源技术交流社区
- Tensorflow数据读取之tfrecord
- 《简易个税计算器》技术支持网址(URL)
- 【倍增算法】CF379F New Year Tree 题解
- 挑灯夜读——Java(二):面向对象
- linux centos7 zend,Linux(centos7)如何安装Zend Optimizer Zend Guard Loader
- 极速体验docker容器健康