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可跨平台实现获取按键的方法
Mar 05 Python
python中dir函数用法分析
Apr 17 Python
python中的错误处理
Apr 10 Python
深入理解NumPy简明教程---数组2
Dec 17 Python
python 划分数据集为训练集和测试集的方法
Dec 11 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
详解Django模版中加载静态文件配置方法
Jul 21 Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
JavaScript 继承详解(四)
2009/07/13 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
2018/05/15 NodeJs
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
JavaScript中arguments的使用方法详解
2020/12/20 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
详解Python开发中如何使用Hook技巧
2017/11/01 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
python中pivot()函数基础知识点
2021/01/03 Python
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
《回乡偶书》教学反思
2014/04/12 职场文书
出差报告格式模板
2014/11/06 职场文书
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python