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 文件重命名工具代码
Jul 26 Python
Python常用内置函数总结
Feb 08 Python
Python中文字符串截取问题
Jun 15 Python
详解Django框架中的视图级缓存
Jul 23 Python
django自带的server 让外网主机访问方法
May 14 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
May 18 Python
Python : turtle色彩控制实例详解
Jan 19 Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
Aug 11 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 05 Python
Python数据模型与Python对象模型的相关总结
Jan 26 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中的类-什么叫类
2006/11/20 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
js实现简单的秒表
2020/01/16 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
python中黄金分割法实现方法
2015/05/06 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
进程的查看和调度分别使用什么命令
2013/12/14 面试题
启动一个线程是用run()还是start()
2016/12/25 面试题
《山谷中的谜底》教学反思
2014/04/26 职场文书
施工安全生产承诺书
2014/05/23 职场文书
民事授权委托书范文
2014/08/02 职场文书
商铺门面租房协议书
2014/10/21 职场文书
毕业生党员个人总结
2015/02/14 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书