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 05 Python
python删除列表中重复记录的方法
Apr 28 Python
Python变量作用范围实例分析
Jul 07 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
PyQt5 pyqt多线程操作入门
May 05 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
May 25 Python
值得收藏的10道python 面试题
Apr 15 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
Python的logging模块基本用法
Dec 24 Python
python文件目录操作之os模块
May 08 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
2018/06/09 jQuery
angularjs $http调用接口的方式详解
2018/08/13 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
Python实现全角半角转换的方法
2014/08/18 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
python实现中文文本分句的例子
2019/07/15 Python
如何在Django项目中引入静态文件
2019/07/26 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
毕业生自荐信
2013/12/14 职场文书
生产部经理岗位职责
2013/12/16 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
继承权公证书范本
2015/01/23 职场文书