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 相关文章推荐
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 Python
Python查找函数f(x)=0根的解决方法
May 07 Python
python中list常用操作实例详解
Jun 03 Python
Django中的Signal代码详解
Feb 05 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
python挖矿算力测试程序详解
Jul 03 Python
keras 自定义loss层+接受输入实例
Jun 28 Python
python输入中文的实例方法
Sep 14 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
Python获取百度热搜的完整代码
Apr 07 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 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
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
详解vue 组件注册
2020/11/20 Vue.js
Python打包可执行文件的方法详解
2016/09/19 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
python的常用模块之collections模块详解
2018/12/06 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
经济学博士求职自荐信范文
2013/11/23 职场文书
优秀的毕业生的自我评价
2013/12/12 职场文书
化学教师自荐信范文
2013/12/28 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
勤俭节约倡议书
2014/04/14 职场文书
和解协议书
2014/04/16 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
博士生求职信
2014/07/06 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
党员证明信
2015/06/19 职场文书
《刷子李》教学反思
2016/02/20 职场文书
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python
总结一些Java常用的加密算法
2021/06/11 Java/Android
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
javascript Number 与 Math对象的介绍
2021/11/17 Javascript