Pytorch中expand()的使用(扩展某个维度)


Posted in Python onJuly 15, 2022

Pytorch expand()的使用

有两点需要注意,无论是 expand() 还是 expand_as():

1.只能在第0维扩展一个维数,比如原来是是(1,3,4)==》(2,1,3,4),而在其他维度扩展不可以(1,3,4)==》(1,2,3,4)【错误】

2.如果不增加维数,只是增加维度,要增加的原维度必须是1才可以在该维度增加维度,其他值均不可以

import torch
#1
x = torch.randn(2, 1, 1)#为1可以扩展为3和4
x = x.expand(2, 3, 4)
print('x :', x.size())
>>> x : torch.Size([2, 3, 4])
#2
#扩展一个新的维度必须在最前面,否则会报错
x = x.expand(2, 3, 4, 6)
>>> RuntimeError: The expanded size of the tensor (3) must match the existing size (2) at non-singleton dimension 1.
x = x.expand(6, 2, 3, 4)
>>> x : torch.Size([6, 2, 3, 4])
#3
#某一个维度为-1表示不改变该维度的大小
x = x.expand(6, -1, -1, -1)
>>> x : torch.Size([6, 2, 1, 1])
import torch
#1
x = torch.randn(2, 1, 1)#原维度为1可以扩展为其他维度
y = torch.randn(2, 3, 3)
x = x.expand_as(y)
print('x :', x.size())
>>> x : torch.Size([2, 3, 3])
#2
x = torch.randn(2, 2, 2)#原维度为其他不是1的值不可以扩展为其他维度
y = torch.randn(2, 3, 4)
x = x.expand_as(y)
print('x :', x.size())
>>> RuntimeError: The expanded size of the tensor (4) must match the existing size (2) at non-singleton dimension 2.  Target sizes: [2, 3, 4].

Pytorch expand()函数

返回tensor的一个新视图

单个维度扩大为更大的尺寸。

tensor也可以扩大为更高维,新增加的维度将附在前面。

扩大tensor不需要分配新内存,只是仅仅新建一个tensor的视图,其中通过将stride设为0,一维将会扩展位更高维。

任何一个一维的在不分配新内存情况下可扩展为任意的数值。

Pytorch中expand()的使用(扩展某个维度)

note:使用expand()函数的时候

x自身不会改变,因此需要将结果重新赋值。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 正则表达式的高级用法
Dec 04 Python
python使用matplotlib绘制折线图教程
Feb 08 Python
python实现各进制转换的总结大全
Jun 18 Python
python机器学习理论与实战(二)决策树
Jan 19 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
python判断数字是否是超级素数幂
Sep 27 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
Python计算两个矩形重合面积代码实例
Sep 16 Python
python使用yield压平嵌套字典的超简单方法
Nov 02 Python
Python post请求实现代码实例
Feb 28 Python
python 基于DDT实现数据驱动测试
Feb 18 Python
Python实现聚类K-means算法详解
Jul 15 #Python
python自动获取微信公众号最新文章的实现代码
Jul 15 #Python
pytorch实现加载保存查看checkpoint文件
Jul 15 #Python
pytest实现多进程与多线程运行超好用的插件
Jul 15 #Python
python如何将mat文件转为png
Jul 15 #Python
python读取mat文件生成h5文件的实现
Jul 15 #Python
全网非常详细的pytest配置文件
Jul 15 #Python
You might like
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
javascript 自动转到命名锚记
2009/01/10 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
浅谈js原生拖放
2016/11/21 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
vue中实现动态生成二维码的方法
2020/02/21 Javascript
python基础教程之获取本机ip数据包示例
2014/02/10 Python
Python设计模式之单例模式实例
2014/04/26 Python
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
Python3基础之函数用法
2014/08/13 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
python排序函数sort()与sorted()的区别
2018/09/18 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
世界水日宣传活动总结
2015/02/09 职场文书
服务员岗位职责范本
2015/04/09 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python