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 15 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
python实现员工管理系统
Jan 11 Python
python kmeans聚类简单介绍和实现代码
Feb 23 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
keras model.fit 解决validation_spilt=num 的问题
Jun 19 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 Python
Python代码风格与编程习惯重要吗?
Jun 03 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 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会话(Session)实现用户登陆功能
2013/06/29 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
Open and Print a Word Document
2007/06/15 Javascript
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
python正则实现提取电话功能
2018/02/24 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
意大利男装网店:Vrients
2019/05/02 全球购物
承诺书格式
2014/06/03 职场文书
国际贸易求职信
2014/07/05 职场文书
同意报考公务员证明
2015/06/17 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript
nginx容器方式反向代理实战
2022/04/18 Servers