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中的五种异常处理机制介绍
Sep 02 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 Python
python实现ID3决策树算法
Aug 29 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
python将控制台输出保存至文件的方法
Jan 07 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
python单例模式的多种实现方法
Jul 26 Python
Python3创建Django项目的几种方法(3种)
Jun 03 Python
Python使用Turtle模块绘制国旗的方法示例
Feb 28 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 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 mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
Javascript this关键字使用分析
2008/10/21 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
使用Angular CLI生成路由的方法
2018/03/24 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
Python isinstance判断对象类型
2008/09/06 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
使用Python处理BAM的方法
2018/09/28 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
大学校园生活自我鉴定
2014/01/13 职场文书
班级学习计划书
2014/04/27 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
Python使用scapy模块发包收包
2021/05/07 Python
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js