根据字典重新排序张量中的列

青葱年少 pytorch 205

原文标题reorder columns in a tensor according to a dictionary

我不知道如何正确解释它,所以标题可能会产生误导。我想做的是根据索引将列从 3d tensor1 移动到另一个 3d tensor2。有一个 dictionarytd,和一个 (k,v)pair intd 表示 t1 的第 k 列将是 t2 的第 v 列

目前,我正在这样做:

for k,v in td.items():
    t2[:,:,v] = torch.select(t1, 2, k)

但是,是的,它非常慢,因为有数百万个。完成这项工作的最佳方法是什么?

原文链接:https://stackoverflow.com//questions/71543191/reorder-columns-in-a-tensor-according-to-a-dictionary

回复

我来回复
  • jodag的头像
    jodag 评论

    假设没有重复值,那么您可以使用

    t2[:,:,list(td.values())] = t1[:,:,list(td.keys())]
    
    2年前 0条评论