天天热消息:Pytorch中expand()的使用(扩展某个维度)
【资料图】
目录
Pytorch expand()的使用Pytorch expand()函数返回tensor的一个新视图note:使用expand()函数的时候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,一维将会扩展位更高维。
任何一个一维的在不分配新内存情况下可扩展为任意的数值。
note:使用expand()函数的时候
x自身不会改变,因此需要将结果重新赋值。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
X 关闭
X 关闭
- 1转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 2充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 3好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 4名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 5亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 6京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 7网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 8市场竞争加剧,有车企因经营不善出现破产、退网、退市
- 9北京市市场监管局为企业纾困减负保护经济韧性
- 10市场监管总局发布限制商品过度包装标准和第1号修改单