pytorch 改变tensor尺寸的实现


Posted in Python onJanuary 03, 2020

改变Tensor尺寸的操作

1.tensor.view

tensor.view方法,可以调整tensor的形状,但必须保证调整前后元素总数一致。view不会改变自身数据,返回的新的tensor与源tensor共享内存,即更改其中一个,另外一个也会跟着改变。

例:

In: import torch as t
   a = t.arange(0, 6)
   a.view(2, 3)
Out:tensor([[0, 1, 2],
    [3, 4, 5]])

In: b = a.view(-1, 3)#当某一维为-1的时候,会自动计算它的大小
Out:tensor([[0, 1, 2],
    [3, 4, 5]])

2.tensor.unsqueeze 和 tensor.squeeze

tensor.unsqueeze 和 tensor.squeeze分别用于增加或减少tensor的某一维度。

例:

In: b.unsqueeze(1)#注意形状, 在第1维(下标从0开始)上增加“1”
Out:tensor([[[0, 1, 2]],
    [[3, 4, 5]]])
    
In: b.unsqueeze(-2) #-2表示倒数第二个维度
Out:tensor([[[0, 1, 2]],
    [[3, 4, 5]]])
    
In: c = b.view(1, 1, 1, 2, 3)
   c.unsqueeze(0)#压缩第0维的“1”
Out:tensor([[[[[[0, 1, 2],
      [3, 4, 5]]]]]])
      
In: c.squeeze() #把所有维度为“1”的压缩
Out:tensor([[0, 1, 2],
    [3, 4, 5]])
    
In:a[1] = 100
  b #a和b共享内存,修改了a,b也变了
Out:tensor([[ 0, 100,  2],
    [ 3,  4,  5]])

3.tensor.resize

tensor.resize是另外一种可以调整tensor尺寸的方法,但与view不同,它可以修改tensor的尺寸。如果新尺寸超过了原尺寸,会自动分配新的内存空间;如果新尺寸小于原尺寸,则之前的数据依旧会保存

例:

In: b.resize_(1, 3)
Out:tensor([[ 0, 100,  2]])

In: b.resize_(3, 3)#旧的数据依旧保存着,多出的数据会分配新空间
Out:tensor([[         0,         100,          2],
    [         3,          4,          5],
    [         0,          0, 2323344073926471279]])

以上这篇pytorch 改变tensor尺寸的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用PYTHON创建XML文档
Mar 01 Python
python利用elaphe制作二维条形码实现代码
May 25 Python
python中argparse模块用法实例详解
Jun 03 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
Nov 11 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
Python创建一个空的dataframe,并循环赋值的方法
Nov 08 Python
python使用udp实现聊天器功能
Dec 10 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
Django之form组件自动校验数据实现
Jan 14 Python
Python基于Dlib的人脸识别系统的实现
Feb 26 Python
python爬虫之利用selenium模块自动登录CSDN
Apr 22 Python
pytest实现多进程与多线程运行超好用的插件
Jul 15 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 #Python
CentOS7下安装python3.6.8的教程详解
Jan 03 #Python
Python实现大数据收集至excel的思路详解
Jan 03 #Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 #Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 #Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
Jan 03 #Python
pytorch AvgPool2d函数使用详解
Jan 03 #Python
You might like
php三种实现多线程类似的方法
2015/10/30 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
Python星号*与**用法分析
2018/02/02 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
求职意向书
2014/04/01 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
vue/cli 配置动态代理无需重启服务的方法
2022/05/20 Vue.js