PyTorch expand() 函数
文章目录
- 1.官方解释
- 2.例子
- 2.1.扩展到更大维度
- 2.2.添加新的维度
1.官方解释
Tensor.expand(*sizes) -> Tensor
:对一个张量进行扩张
返回的是一个 tensor
的 view
,在 view
中,tensor
的单个维度(大小是 1 的维度)可以被扩展成更大的值,比如 size(1, 4) -> size(5, 4)
关于一个 tensor
的 view
,详情可见 tensor的存储方式 + view() rehape() resize_() 区别_长命百岁️的博客-CSDN博客
如果我们在一个维度上输入函数参数是 -1
,那么就意味着,我们不改变这一维的 size。
我们还可以给 tensor
增加新的维度,但是新的维度只能放在前面。对于新的维度,函数参数不能是 -1。
扩展函数并不会分配新的内存,只是创建了新的 veiw
,将被扩大维度的 stride
设置为 0 了。任何 size 是 1 的维度,都可以在不分配内存的情况下,扩展到任意大小。
参数
*sizes(torch.Size / int)
—希望得到的扩展后的 size- 扩充第
i
维时,是将i+1
维及之后维度的数据作为整体,进行复制来扩充的
2.例子
2.1.扩展到更大维度
a = torch.randn(1, 1, 3)
b = a.expand(-1, 3, -1)
c = a.expand(3, 3, 3)
print(a)
print(b)
print(c)
>>tensor([[[ 0.6955, -0.0767, -0.8397]]])>>tensor([[[ 0.6955, -0.0767, -0.8397],[ 0.6955, -0.0767, -0.8397],[ 0.6955, -0.0767, -0.8397]]])>>tensor([[[ 0.6955, -0.0767, -0.8397],[ 0.6955, -0.0767, -0.8397],[ 0.6955, -0.0767, -0.8397]],[[ 0.6955, -0.0767, -0.8397],[ 0.6955, -0.0767, -0.8397],[ 0.6955, -0.0767, -0.8397]],[[ 0.6955, -0.0767, -0.8397],[ 0.6955, -0.0767, -0.8397],[ 0.6955, -0.0767, -0.8397]]])
我们使用的数据
a
有三个维度,分别为0, 1, 2
对
b
来说,其第 1 维的 size 增加到了 3。多出来的数是用第 2 维的数来补充的。print(b.stride()) >>(3, 0, 1)
可见,第 1 维的
stride
变成了 0。也就是说我们沿着第 1 维走到下一个数字,还是它自己。也就是拿第 2 维的整体进行了复制,从而扩张了第 1 维。对
c
来说。第 0 维和第 1 维的 size 都扩张到了 3。最后一维不受影响,因为最后一维的不是单维度的,不能扩张。print(c.stride()) >>(0, 0, 1)
第 0 维和第 1 维的 size 都扩张到了 3。扩张第 1 维的时候是复制第 2 维的总体来实现的,扩张第 0 维的时候是复制后面两维的总体来实现的。
2.2.添加新的维度
a = torch.randn(1, 3)
b = a.expand(3, -1, -1)
print(a)
print(b)
>>tensor([[-1.4421, -0.7991, 0.7458]])
>>tensor([[[-1.4421, -0.7991, 0.7458]],[[-1.4421, -0.7991, 0.7458]],[[-1.4421, -0.7991, 0.7458]]])
可见 b
的大小变成了 (3, 1, 1)
,实现了在前面增加新的维度。而且给第 0 维增加维度,是用后面维度的整体进行扩充的。
PyTorch expand() 函数相关推荐
- Pytorch丨expand函数
1.官方文档描述 expand(*sizes) 返回tensor的一个新视图,单个维度扩大为更大的尺寸. tensor也可以扩大为更高维,新增加的维度将附在前面. 扩大tensor不需要分配新内存,只 ...
- 全新开源,《Pytorch常用函数函数手册》开放下载!内含200余个函数!
近期有很多小伙伴在后台咨询有没有关于Pytorch函数使用的学习资料.Pytorch是目前常用的深度学习框架之一,深受学生党的喜爱,小白本人也是使用的Pytorch框架.为了帮助更多小伙伴,小白学视觉 ...
- PyTorch Upsample() 函数实现上采样
PyTorch Upsample() 函数实现上采样 import torch import torch.nn as nninput = torch.arange(1, 5, dtype=torch. ...
- PyTorch cat() 函数实现维度拼接
PyTorch cat() 函数实现维度拼接 需要保证(除需要合并的维度外)其他维度均相等.参数dim指定需要合并的维度的索引号. 如下例子为合并第三维. import torch a = torch ...
- pytorch基础函数学习
深度学习框架,似乎永远离不开哪个最热哪个最实用的话题,自己接触甚浅,尚不敢对齐进行大加评论,这里也只是初步接触.目前常见的有TensorFlow,pytorch,Keras等,至于目前哪个做好用,就像 ...
- 哈工大博士历时半年整理的《Pytorch常用函数函数手册》开放下载!内含200余个函数!...
近期有很多小伙伴在公众号后台咨询有没有关于Pytorch函数使用的学习资料.Pytorch是目前常用的深度学习框架之一,深受学生党的喜爱,小白本人也是使用的Pytorch框架.为了帮助更多小伙伴,小白 ...
- matlab expand 扩展 用不了,matlab中expand函数 Matlab 里的expand怎么用
Matlab 里的expand怎么用 expand函数用于多项式的展开运算, syms x y;%定义x,y变量 expand((x-2)*(x-4)) ans = x^2 - 6*x + 8今天小编 ...
- 旧版中 pytorch.rfft 函数与新版 pytorch.fft.rfft 函数对应修改问题
旧版中 pytorch.rfft 函数与新版 pytorch.fft.rfft 函数对应修改问题 前言 一.旧版 pytorch.rfft()函数解释 二.新版pytorch.fft.rfft()函数 ...
- 一文整理5个Pytorch张量乘法函数
--欢迎关注#公众号:AI算法小喵,会有更多不错的文章分享-- 本文首发于:一文整理5个Pytorch张量乘法函数 最近整理了Pytorch中5个常用的张量乘法函数和用法,建议收藏学习. 1. 张量的 ...
最新文章
- 不用任何第三方,写一个RTMP直播推流器
- linux下安装expect解决方法
- java有向图邻接表入度_图的实现--邻接表(求出各顶点的出度和入度)
- linux ssl 证书服务器,Linux下Nginx安全证书ssl配置方法
- 夏日防晒护肤经验心得与大家分享 - 生活至上,美容至尚!
- building tool
- 第27月第24天 git pull fetch
- 变成“砖”?旧款 Kindle 因 3G 消失将无法联网
- 局域网ip冲突检测工具_软考网络工程师之局域网与城域网(无线局域网,网桥,VLAN)...
- 《并行计算的编程模型》一2.3.2 段信息
- 图神经网络学习笔记(1)——图信号与图傅里叶变换
- 农民工兄弟学C#(4)
- linux 笔记本 显卡驱动,archlinux 笔记本安装nvidia显卡驱动与intel显卡驱动
- 为了找工作学习ssm
- HBuilder将项目生成安卓手机app
- 没有计算机网络地址怎么办,教大家电脑没有ip地址mac地址怎么办
- i512500h和r76800hs对比 i5 12500h和r7 6800hs选哪个好
- 淘宝taobao.com步3721后尘晋升新网骚
- 家庭居室装修需做哪些项目
- linux 内存 参数,linux free命令参数及用法详解(linux查看内存命令)