我有一个在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]])
我想要类似的东西
y = x[idx]
这样' y '将输出[[10],[43]]
或类似的结果。
索引表示所需元素在最后一个维度中的位置。对于上面的示例,其中x.shape = (2,3),最后一个维度是列,则“idx”中的索引是列。我希望对于超过2个维度的情况也是如此。
idx = [[0],[2]]
以从x
中获取值[[10],[43]]
?不清楚这些索引表示什么,它们是行/列还是平坦数组索引? - Ehsan