torch.expand

文章介绍了在PyTorch中如何使用`expand`函数来扩展张量的维度,包括将1维扩展到2维以及将已有的非1维扩展。示例代码展示了`expand`函数的工作方式,强调了-1作为尺寸占位符的用法,以及一维张量实际上代表的是单维度的多维表示。
摘要由CSDN通过智能技术生成

再维度上进行扩展

下面展示两种用法:

1、扩展出新的一维,仅限于1维变2维

输入:

import torch
seqlen=5
x1 = torch.arange(seqlen).expand(4,5)
x2=torch.arange(seqlen).expand(4,-1)
print(x1)
print(x2)

输出:

tensor([[0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4]])
tensor([[0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4],
        [0, 1, 2, 3, 4]])

从上面可以看出来,-1为数据本身的维度,是可以互相取代的

2、将维数为1的进行扩展

import torch
import numpy as np
x=torch.tensor(np.random.randint(10,size=(3,1,5)))
print(x)
y=x.expand(3,3,5)
print(y)

如上(3,1,5),将第二维进行扩展从1变成3

那么如果对维数不是1的进行扩展可以吗?

不可以

第一种情况其实是第二种情况的特殊版

[1,2,3,4,5],虽然是一维,但是相当于1*5,知识把前面的1省掉了


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值