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 30 Python
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
python实现类的静态变量用法实例
May 08 Python
Python3字符串学习教程
Aug 20 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
使用Python画出小人发射爱心的代码
Nov 23 Python
Python 中判断列表是否为空的方法
Nov 24 Python
Python threading.local代码实例及原理解析
Mar 16 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
Mar 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
咖啡的化学
2021/03/03 咖啡文化
11个PHPer必须要了解的编程规范
2014/09/22 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
JScript中的undefined和"undefined"的区别
2007/03/08 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
jQuery常见开发技巧详细整理
2013/01/02 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
DOM 高级编程
2015/05/06 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
js实现三角形粒子运动
2020/09/22 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
python中的列表推导浅析
2014/04/26 Python
python pytest进阶之fixture详解
2019/06/27 Python
Python文件操作基础流程解析
2020/03/19 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
正风肃纪剖析材料
2014/09/30 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS