I am trying to use torch.unique()
.
Let’s say I have a 2D tensor X = [[1, 2, 3, 4], [1, 2, 3, 4], [3, 4, 5, 6]]
. If I use the operation output, inverse_indices = torch.unique(X), sorted=True, return_inverse=True, dim=0)
, then output
would be [[1, 2, 3, 4], [3, 4, 5, 6]]
and inverse_indices
would be [0, 0, 1]
.
That is, inverse_indices
is a tensor of the same length as X
and tells us the index of elements of X
with respect to the tensor output
.
Is there a way to obtain the “reverse” of inverse indices? That is, I want to obtain the indices of output
with respect to X
. For example, in this case, I want to obtain the indices as [0, 2]
(or [1, 2]
). I understand that this “reverse” inverse index is not unique since multiple elements of X
can be mapped to the same element in output
.