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使用百度API上传文件到百度网盘代码分享
Nov 08 Python
python中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
Python正则替换字符串函数re.sub用法示例
Jan 19 Python
Python与Java间Socket通信实例代码
Mar 06 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
关于Tensorflow中的tf.train.batch函数的使用
Apr 24 Python
Python基于opencv实现的简单画板功能示例
Mar 04 Python
python实现名片管理系统项目
Apr 26 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
python实现简单俄罗斯方块
Mar 13 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 Python
详解Python yaml模块
Sep 23 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留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
js计算精度问题小结
2013/04/22 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
Python jieba库用法及实例解析
2019/11/04 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
java程序员面试交流
2012/11/29 面试题
Ruby如何实现动态方法调用
2012/11/18 面试题
学年自我鉴定
2014/01/16 职场文书
小松树教学反思
2014/02/11 职场文书
大学生学年个人总结
2015/02/15 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers
详解Vue的列表渲染
2021/11/20 Vue.js