【发布时间】:2017-10-23 02:22:40
【问题描述】:
我有一个 3 x 3 PyTorch LongTensor,看起来像这样:
A =
[0, 0, 0]
[1, 2, 2]
[1, 2, 3]
我想让我们用它来索引一个像这样的 4 x 2 FloatTensor:
B =
[0.4, 0.5]
[1.2, 1.4]
[0.8, 1.9]
[2.4, 2.9]
我的预期输出是下面的 2 x 3 x 3 FloatTensor:
C[0,:,:] =
[0.4, 0.4, 0.4]
[1.2, 0.8, 0.8]
[1.2, 0.8, 2.4]
C[1,:,:] =
[0.5, 0.5, 0.5]
[1.4, 1.9, 1.9]
[1.4, 1.9, 2.9]
换句话说,矩阵A是索引和广播矩阵B。 A是B的索引矩阵,所以这个操作本质上是一个索引操作。
如何使用torch.index_select() 函数来做到这一点?如果解决方案涉及添加或置换维度,那很好。
【问题讨论】: