Pytorch中expand()的使用(扩展某个维度)

这篇文章主要介绍了Pytorch中expand()的使用(扩展某个维度),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Pytorch expand()的使用

有两点需要注意,无论是 expand() 还是 expand_as():文章源自设计学徒自学网-http://www.sx1c.com/38757.html

1.只能在第0维扩展一个维数,比如原来是是(1,3,4)==》(2,1,3,4),而在其他维度扩展不可以(1,3,4)==》(1,2,3,4)【错误】文章源自设计学徒自学网-http://www.sx1c.com/38757.html

2.如果不增加维数,只是增加维度,要增加的原维度必须是1才可以在该维度增加维度,其他值均不可以文章源自设计学徒自学网-http://www.sx1c.com/38757.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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])
1
2
3
4
5
6
7
8
9
10
11
12
13
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的一个新视图

单个维度扩大为更大的尺寸。文章源自设计学徒自学网-http://www.sx1c.com/38757.html

tensor也可以扩大为更高维,新增加的维度将附在前面。文章源自设计学徒自学网-http://www.sx1c.com/38757.html

扩大tensor不需要分配新内存,只是仅仅新建一个tensor的视图,其中通过将stride设为0,一维将会扩展位更高维。文章源自设计学徒自学网-http://www.sx1c.com/38757.html

任何一个一维的在不分配新内存情况下可扩展为任意的数值。文章源自设计学徒自学网-http://www.sx1c.com/38757.html

Pytorch中expand()的使用(扩展某个维度) -1文章源自设计学徒自学网-http://www.sx1c.com/38757.html

note:使用expand()函数的时候

x自身不会改变,因此需要将结果重新赋值。文章源自设计学徒自学网-http://www.sx1c.com/38757.html

以上为个人经验,希望能给大家一个参考。文章源自设计学徒自学网-http://www.sx1c.com/38757.html

继续阅读
我的微信
微信扫一扫
weinxin
我的微信
惠生活福利社
微信扫一扫
weinxin
我的公众号
 
设计学徒自学网
  • 本文由 设计学徒自学网 发表于 2024年1月18日09:31:48
  • 转载请务必保留本文链接:http://www.sx1c.com/38757.html
    本站展示的所有图文软件均来自于互联网,仅用于软件学习研究分享传递,请勿商用,本站如有侵权请联系客服删除。
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

拖动滑块以完成验证