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入门教程
Apr 03 Python
Python中类型关系和继承关系实例详解
May 25 Python
Python2.x版本中基本的中文编码问题解决
Oct 12 Python
Python操作mysql数据库实现增删查改功能的方法
Jan 15 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
Sanic框架请求与响应实例分析
Jul 16 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
Python经典五人分鱼实例讲解
Jan 04 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
adodb与adodb_lite之比较
2006/12/31 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
PHP 正则表达式小结
2015/02/12 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
javascript动画浅析
2012/08/30 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python实现基于信息增益的决策树归纳
2018/12/18 Python
Flask-WTF表单的使用方法
2019/07/12 Python
python 实现视频 图像帧提取
2019/12/10 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
python 画条形图(柱状图)实例
2020/04/24 Python
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
上课打牌的检讨书
2014/02/15 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
庆六一开幕词
2015/01/29 职场文书
2015迎新晚会开场白
2015/07/17 职场文书