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显示天气预报
Mar 02 Python
Python中使用items()方法返回字典元素对的教程
May 21 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
Django 跨域请求处理的示例代码
May 02 Python
解决pycharm无法调用pip安装的包问题
May 18 Python
python实现屏保计时器的示例代码
Aug 08 Python
python实现大转盘抽奖效果
Jan 22 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
Python实现拼音转换
Jun 07 Python
python面向对象版学生信息管理系统
Jun 24 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表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
清空上传控件input file的值
2010/07/03 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
Python最长公共子串算法实例
2015/03/07 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
关于python写入文件自动换行的问题
2018/06/23 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
建筑施工员岗位职责
2013/11/26 职场文书
护理专业自荐信范文
2014/02/26 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
Python与C++中梯度方向直方图的实现
2022/03/17 Python
mysql查看表结构的三种方法总结
2022/07/07 MySQL