【问题标题】:Repeat 3d tensor's rows in pytorch在 pytorch 中重复 3d 张量的行
【发布时间】:2020-12-24 01:06:57
【问题描述】:

我有一个BxCxd 坐标张量,想按以下方式重复每一行:

 [[[1,0,0],[0,1,0],[0,0,1]]] -> [[[1,0,0],[1,0,0],[0,1,0],[0,1,0],[0,0,1],[0,0,1]]]

在上面的示例中,每行重复 2 次。特别重要的是排序。在下一行出现之前,第一个张量中的每一行应该在第二个张量中出现 k 次。 我尝试了以下代码:

print(x.size())
params = x.repeat_interleave(self.k, dim=-1).permute(0,2,1)

在上面的 sn-p 中,x 的大小在 repeat_interleave 之前是 32x128x4。对于self.k = 64,我希望结果是32x8192x4 张量,但是我得到的结果是32x256x128,这对我来说没有意义。我在这里错过了什么?

【问题讨论】:

    标签: python-3.x pytorch


    【解决方案1】:

    我想你想要:

    t.repeat_interleave(2, dim=1)
    

    输出:

    ensor([[[1, 0, 0],
             [1, 0, 0],
             [0, 1, 0],
             [0, 1, 0],
             [0, 0, 1],
             [0, 0, 1]]])
    

    【讨论】:

    • 我可能听起来很疯狂,但我在几分钟前尝试了那个确切的方法,但它不起作用。我又试了一次,它起作用了,去看看......非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2021-08-22
    • 2018-10-23
    • 1970-01-01
    • 2019-06-24
    • 2020-10-14
    相关资源
    最近更新 更多