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

reorder columns in a tensor according to a dictionary

我不知道如何正确解释它,所以标题可能会产生误导。 我想要做的是根据索引将列从 3d 张量 t1 移动到另一个 3d 张量 t2 。有一个字典 td(k,v)td 意味着 ktht1 将是 vtht2

目前我是这样做的:

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

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

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

t2[:,:,list(td.values())] = t1[:,:,list(td.keys())]