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 06 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
python 多维高斯分布数据生成方式
Dec 09 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
使用anaconda安装pytorch的实现步骤
Sep 03 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 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
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
javascript 写类方式之二
2009/07/05 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
Vue父子之间值传递的实例教程
2020/07/02 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
[01:54]胎教DOTA2 准妈妈玩家现身中国区预选赛
2016/06/26 DOTA
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
python安装Scrapy图文教程
2017/08/14 Python
python数据结构之列表和元组的详解
2017/09/23 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
实习单位证明范例
2014/11/17 职场文书
前台岗位职责
2015/02/13 职场文书
水知道答案观后感
2015/06/08 职场文书
中学总务处工作总结
2015/08/12 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技