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访问sqlserver示例
Feb 10 Python
python实现马耳可夫链算法实例分析
May 20 Python
Python多进程分块读取超大文件的方法
Apr 13 Python
Python的标准模块包json详解
Mar 13 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
谈一谈基于python的面向对象编程基础
May 21 Python
python动态进度条的实现代码
Jul 03 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
python子线程退出及线程退出控制的代码
Oct 16 Python
python将时分秒转换成秒的实例
Dec 07 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
Jan 25 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
javascript中的事件代理初探
2014/03/08 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
JavaScript如何操作css
2020/10/24 Javascript
python中二维阵列的变换实例
2014/10/09 Python
介绍Python中的__future__模块
2015/04/27 Python
Python实现方便使用的级联进度信息实例
2015/05/05 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
Python实现一个简单的验证码程序
2017/11/03 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
学校门卫管理制度
2014/01/30 职场文书
运动会加油口号
2014/06/07 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
师德师风自查材料
2014/10/14 职场文书
张丽莉观后感
2015/06/16 职场文书