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实现实例
Jun 20 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
python中必要的名词解释
Nov 20 Python
python socket通信编程实现文件上传代码实例
Dec 14 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
Opencv求取连通区域重心实例
Jun 04 Python
Python读取xlsx数据生成图标代码实例
Aug 12 Python
Python析构函数__del__定义原理解析
Nov 20 Python
python函数指定默认值的实例讲解
Mar 29 Python
Python中文纠错的简单实现
Jul 07 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生成不重复标识符的方法
2014/11/21 PHP
php两种无限分类方法实例
2015/04/21 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
图片之间的切换
2006/06/26 Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
原生js实现日期联动
2015/01/12 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
python实现挑选出来100以内的质数
2015/03/24 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
python实现可变变量名方法详解
2019/07/01 Python
python能开发游戏吗
2020/06/11 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
李宁官方网店:中国运动品牌
2017/11/02 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
C#笔试题集合
2013/06/21 面试题
物业电工岗位职责
2013/11/20 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
辅导员学期工作总结
2015/08/14 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
nginx安装以及配置的详细过程记录
2021/09/15 Servers
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python
以下牛机,你有几个
2022/04/05 无线电
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python