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的词法分析与语法分析
May 18 Python
python提取内容关键词的方法
Mar 16 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
Python中的字符串操作和编码Unicode详解
Jan 18 Python
Python实现的企业粉丝抽奖功能示例
Jul 26 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
Django 自定义分页器的实现代码
Nov 24 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
pytorch 准备、训练和测试自己的图片数据的方法
Jan 10 Python
利用Python实现Json序列化库的方法步骤
Sep 09 Python
小结Python的反射机制
Sep 28 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 date函数参数详解
2006/11/27 PHP
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
Yii全局函数用法示例
2017/01/22 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
Javascript Object.extend
2010/05/18 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
Python写的Socks5协议代理服务器
2014/08/06 Python
带你了解python装饰器
2017/06/15 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
解读python如何实现决策树算法
2018/10/11 Python
python学习之hook钩子的原理和使用
2018/10/25 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
django删除表重建的实现方法
2019/08/28 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
实验教师岗位职责
2014/02/13 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
2014年度工作总结报告
2014/12/15 职场文书
酒店财务部岗位职责
2015/04/14 职场文书