pytorch中的torch.tensor.repeat以及torch.tensor.expand用法

torch.tensor.expand

先看招

import torch
x = torch.tensor([[1], [2], [3]])
print(x.size())
print(x.expand(3, 4))
print(x.expand(-1, 4))   # -1 means not changing the size of that dimension,所以原来是3,现在仍然是3,故和上述等价

在这里插入图片描述

说白了,就是复制!!!怎么复制呢?原来是[3,1],现在要变成[3,4],所以是对原tensor中第二个维度里面的数进行复制!!

要求:
被扩张的那个维度必须只有一个数!!也就是说size必须是1!!,所以原tensor必须size是[3,1],不可以是[3,2],否则报错。即:

tensor with singleton dimensions expanded to a larger size.

torch.tensor.repeat

同样都是复制,这个比上面这个好用。
上面这个功能可以如下实现:

x = torch.tensor([[1], [2], [3]])
print(x.size())
print(x.repeat(1, 4))#用法不一样的地方,不变的地方用1表示,而不是-1.

在这里插入图片描述
而且其不需要扩张的维度严格要求为1,例如可以是[3,2],例如:

x = torch.tensor([[1,1], [2,1], [3,0]])
print(x.size())
print(x.repeat(1, 4))

在这里插入图片描述
这才是真正的复制啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

音程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值