首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Torch - repeat张量类numpy repeat

Torch - repeat张量类numpy repeat
EN

Stack Overflow用户
提问于 2016-02-05 23:02:26
回答 6查看 28.8K关注 0票数 12

我正在尝试以两种方式重复torch中的张量。例如,将张量{1,2,3,4}重复两种方式3次以产生结果;

代码语言:javascript
运行
复制
{1,2,3,4,1,2,3,4,1,2,3,4}
{1,1,1,2,2,2,3,3,3,4,4,4}

有一个内置的torch: generate张量函数,它将生成两个函数中的第一个(如numpy.tile()),但我找不到一个用于后者(如numpy.repeat())。我确信我可以在第一个数组上调用sort来给出第二个数组,但我认为对于较大的数组,这可能会耗费大量的计算资源。

谢谢。

EN

回答 6

Stack Overflow用户

发布于 2020-01-03 19:08:02

尝试torch.repeat_interleave()方法:https://pytorch.org/docs/stable/torch.html#torch.repeat_interleave

代码语言:javascript
运行
复制
>>> x = torch.tensor([1, 2, 3])
>>> x.repeat_interleave(2)
tensor([1, 1, 2, 2, 3, 3])
票数 14
EN

Stack Overflow用户

发布于 2018-09-10 21:38:47

引用https://discuss.pytorch.org/t/how-to-tile-a-tensor/13853 -

z= torch.FloatTensor([1,2,3,4,5,6,7,8,9]) 1 2 3 4 5 6 7 8 9 z.transpose(0,1).repeat(1,3).view(-1,3).transpose(0,1) 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 7 7 7 8 8 8 9 9

这将给你一个直观的感觉,它是如何工作的。

票数 8
EN

Stack Overflow用户

发布于 2016-02-14 11:15:43

代码语言:javascript
运行
复制
a = torch.Tensor([1,2,3,4])

为了得到[1., 2., 3., 4., 1., 2., 3., 4., 1., 2., 3., 4.],我们在第一维重复张量三次:

代码语言:javascript
运行
复制
a.repeat(3)

为了得到[1,1,1,2,2,2,3,3,3,4,4,4],我们向张量添加一个维度,并在第二个维度中重复三次,以获得4 x 3张量,我们可以将其展平。

代码语言:javascript
运行
复制
b = a.reshape(4,1).repeat(1,3).flatten()

代码语言:javascript
运行
复制
b = a.reshape(4,1).repeat(1,3).view(-1)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35227224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档