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之PyMongo使用总结
May 26 Python
Python设计模式之代理模式简单示例
Jan 09 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
简单了解python装饰器原理及使用方法
Dec 18 Python
python读取Kafka实例
Dec 23 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
python dumps和loads区别详解
Feb 04 Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
Python编写nmap扫描工具
Jul 21 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/01/07 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
php实现学生管理系统
2020/03/21 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
使用隐藏的new来创建对象
2011/03/29 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
js实现查询商品案例
2020/07/22 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
[48:23]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第一局
2016/03/05 DOTA
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
python中adb有什么功能
2020/06/07 Python
python中的列表和元组区别分析
2020/12/30 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
土木工程专业个人求职信
2013/12/30 职场文书
合作意向书模板
2014/03/31 职场文书
个人考核材料
2014/05/15 职场文书
医生见习报告范文
2014/11/03 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
创业计划书之外语培训班
2019/11/02 职场文书
解决 redis 无法远程连接
2022/05/15 Redis