文章目录

  • 1.官方解释
  • 2.例子
    • 2.1.扩展到更大维度
    • 2.2.添加新的维度

1.官方解释

Tensor.expand(*sizes) -> Tensor:对一个张量进行扩张

返回的是一个 tensorview,在 view 中,tensor 的单个维度(大小是 1 的维度)可以被扩展成更大的值,比如 size(1, 4) -> size(5, 4)

关于一个 tensorview,详情可见 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() 函数相关推荐

  1. Pytorch丨expand函数

    1.官方文档描述 expand(*sizes) 返回tensor的一个新视图,单个维度扩大为更大的尺寸. tensor也可以扩大为更高维,新增加的维度将附在前面. 扩大tensor不需要分配新内存,只 ...

  2. 全新开源,《Pytorch常用函数函数手册》开放下载!内含200余个函数!

    近期有很多小伙伴在后台咨询有没有关于Pytorch函数使用的学习资料.Pytorch是目前常用的深度学习框架之一,深受学生党的喜爱,小白本人也是使用的Pytorch框架.为了帮助更多小伙伴,小白学视觉 ...

  3. PyTorch Upsample() 函数实现上采样

    PyTorch Upsample() 函数实现上采样 import torch import torch.nn as nninput = torch.arange(1, 5, dtype=torch. ...

  4. PyTorch cat() 函数实现维度拼接

    PyTorch cat() 函数实现维度拼接 需要保证(除需要合并的维度外)其他维度均相等.参数dim指定需要合并的维度的索引号. 如下例子为合并第三维. import torch a = torch ...

  5. pytorch基础函数学习

    深度学习框架,似乎永远离不开哪个最热哪个最实用的话题,自己接触甚浅,尚不敢对齐进行大加评论,这里也只是初步接触.目前常见的有TensorFlow,pytorch,Keras等,至于目前哪个做好用,就像 ...

  6. 哈工大博士历时半年整理的《Pytorch常用函数函数手册》开放下载!内含200余个函数!...

    近期有很多小伙伴在公众号后台咨询有没有关于Pytorch函数使用的学习资料.Pytorch是目前常用的深度学习框架之一,深受学生党的喜爱,小白本人也是使用的Pytorch框架.为了帮助更多小伙伴,小白 ...

  7. 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今天小编 ...

  8. 旧版中 pytorch.rfft 函数与新版 pytorch.fft.rfft 函数对应修改问题

    旧版中 pytorch.rfft 函数与新版 pytorch.fft.rfft 函数对应修改问题 前言 一.旧版 pytorch.rfft()函数解释 二.新版pytorch.fft.rfft()函数 ...

  9. 一文整理5个Pytorch张量乘法函数

    --欢迎关注#公众号:AI算法小喵,会有更多不错的文章分享-- 本文首发于:一文整理5个Pytorch张量乘法函数 最近整理了Pytorch中5个常用的张量乘法函数和用法,建议收藏学习. 1. 张量的 ...

最新文章

  1. 不用任何第三方,写一个RTMP直播推流器
  2. linux下安装expect解决方法
  3. java有向图邻接表入度_图的实现--邻接表(求出各顶点的出度和入度)
  4. linux ssl 证书服务器,Linux下Nginx安全证书ssl配置方法
  5. 夏日防晒护肤经验心得与大家分享 - 生活至上,美容至尚!
  6. building tool
  7. 第27月第24天 git pull fetch
  8. 变成“砖”?旧款 Kindle 因 3G 消失将无法联网
  9. 局域网ip冲突检测工具_软考网络工程师之局域网与城域网(无线局域网,网桥,VLAN)...
  10. 《并行计算的编程模型》一2.3.2 段信息
  11. 图神经网络学习笔记(1)——图信号与图傅里叶变换
  12. 农民工兄弟学C#(4)
  13. linux 笔记本 显卡驱动,archlinux 笔记本安装nvidia显卡驱动与intel显卡驱动
  14. 为了找工作学习ssm
  15. HBuilder将项目生成安卓手机app
  16. 没有计算机网络地址怎么办,教大家电脑没有ip地址mac地址怎么办
  17. i512500h和r76800hs对比 i5 12500h和r7 6800hs选哪个好
  18. 淘宝taobao.com步3721后尘晋升新网骚
  19. 家庭居室装修需做哪些项目
  20. linux 内存 参数,linux free命令参数及用法详解(linux查看内存命令)

热门文章

  1. BBP算法计算圆周率(BBP Formula HDU - 6217)
  2. 如何在工作之余找精力做副项目?
  3. 可!!Win10禁用驱动程序强制签名
  4. 僵尸进程的查找及僵尸进程的kill
  5. 选择电容要考虑哪些点?
  6. Div+CSS网页布局对网站搜索引擎优化的影响
  7. c语言字母菱形金字塔编程,C语言打印菱形、金字塔
  8. 电脑诊断出策略服务器未运行,IE浏览器打不开,诊断策略服务未运行
  9. Quill编辑器内置样式配置
  10. phpstudy php+apache 环境PHP多版本环境配置