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 SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
May 06 Python
python操作gmail实例
Jan 14 Python
Python抓取框架Scrapy爬虫入门:页面提取
Dec 01 Python
Django项目开发中cookies和session的常用操作分析
Jul 03 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 Python
Python数据类型之List列表实例详解
May 08 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
Python %r和%s区别代码实例解析
Apr 03 Python
QML实现钟表效果
Jun 02 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
Python学习之os包使用教程详解
Mar 21 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
phpstrom使用xdebug配置方法
2013/12/17 PHP
对比分析php中Cookie与Session的异同
2016/02/19 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
Joomla开启SEF的方法
2016/05/04 PHP
php集成动态口令认证
2016/07/21 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
简单的js表单验证函数
2013/10/28 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
js星星评分效果
2014/07/24 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
jquery自定义表格样式
2015/11/23 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
python 一维二维插值实例
2020/04/22 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
Python页面加载的等待方式总结
2021/02/28 Python
巴西宠物商店:Cobasi
2019/04/19 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
英文版餐饮运营管理求职信
2013/11/06 职场文书
房屋认购协议书
2015/01/29 职场文书
求职自我评价怎么写
2015/03/09 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书