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 相关文章推荐
linux 下实现python多版本安装实践
Nov 18 Python
Python在线运行代码助手
Jul 15 Python
利用Python自动监控网站并发送邮件告警的方法
Aug 24 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
WxPython实现无边框界面
Nov 18 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 Python
通过案例解析python鸭子类型相关原理
Oct 10 Python
python 模拟登陆github的示例
Dec 04 Python
分享一个python的aes加密代码
Dec 22 Python
用python画城市轮播地图
May 28 Python
python实现简单的聊天小程序
Jul 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
一些常用的php简单命令代码集锦
2007/09/24 PHP
php下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
JavaScript实现的浏览器下载文件的方法
2017/08/09 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
python list中append()与extend()用法分享
2013/03/24 Python
使用python分析git log日志示例
2014/02/27 Python
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
python实现linux下抓包并存库功能
2018/07/18 Python
分析python请求数据
2018/08/19 Python
Django框架模板介绍
2019/01/15 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
教师师德师风整改措施
2014/10/24 职场文书
2015年幼师工作总结
2015/04/28 职场文书
追讨欠款律师函
2015/06/24 职场文书
员工手册董事长致辞
2015/07/29 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS