小编Jes*_*rja的帖子

通过另一个多维张量索引多维火炬张量

我在 pytorch 中有一个张量x,比如说形状 (5,3,2,6) 和另一个形状 (5,3,2,1) 的张量idx,其中包含第一个张量中每个元素的索引。我想要用第二个张量的索引对第一个张量进行切片。我尝试了 x= x[idx] 但当我真的希望它的形状为 (5,3,2) 或 (5,3,2,1) 时,我得到了一个奇怪的维度。

我会尝试举一个更简单的例子:比方说

x=torch.Tensor([[10,20,30],
                 [8,4,43]])
idx = torch.Tensor([[0],
                    [2]])
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西

y = x[idx]
Run Code Online (Sandbox Code Playgroud)

这样 'y' 输出[[10],[43]]或类似的东西。

索引表示最后一个维度中所需元素的位置。对于上面的示例,其中 x.shape = (2,3) 最后一个维度是列,那么“idx”中的索引就是列。我想要这个,但是尺寸大于 2

python numpy pytorch tensor numpy-slicing

5
推荐指数
1
解决办法
1703
查看次数

标签 统计

numpy ×1

numpy-slicing ×1

python ×1

pytorch ×1

tensor ×1