I have a 2D tensor and want to select elements from it according to another Tensor with a list of cell ids.
I am using Tensor_A[Tensor_B]
but it is behaving not as I expected.
Why slicing a tensor using another tensor behaves differently than using a numpy array? See below for example:
In [1]: import torch
import numpy as np
In [3]: A = torch.randint(0,10, size=(3,4))
tensor([[6, 6, 5, 3],
[1, 7, 7, 3],
[5, 8, 5, 4]])
In [5]: A[np.array([[0,0],[1,1]])]
Out[5]: tensor([6, 6])
In [6]: A[torch.tensor([[0,0],[1,1]])]
Out[6]:
tensor([[[6, 6, 5, 3],
[6, 6, 5, 3]],
[[1, 7, 7, 3],
[1, 7, 7, 3]]])
What is the difference between slicing using numpy and a tensor?