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之wxPython菜单使用详解
Sep 28 Python
Python数据结构之翻转链表
Feb 25 Python
python操作列表的函数使用代码详解
Dec 28 Python
Python爬虫抓取代理IP并检验可用性的实例
May 07 Python
django用户登录和注销的实现方法
Jul 16 Python
python中退出多层循环的方法
Nov 27 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
OpenCV中VideoCapture类的使用详解
Feb 14 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 Python
python字典的元素访问实例详解
Jul 21 Python
python开发的自动化运维工具ansible详解
Aug 07 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
isset和empty的区别
2007/01/15 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
js判断节假日实例代码
2017/12/27 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
简单谈谈python中的语句和语法
2017/08/10 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
pandas值替换方法
2018/07/10 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
python实现猜拳游戏项目
2020/11/30 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
C++面试题目
2013/06/25 面试题
建筑工程技术应届生自荐信
2013/09/27 职场文书
部队党性分析材料
2014/02/16 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
2014党员学习兰辉先进事迹思想汇报
2014/09/17 职场文书
法院个人总结
2015/03/03 职场文书