Я пытаюсь извлечь уникальные значения в каждой строке матрицы и вернуть их в одну и ту же матрицу (с повторяющимися значениями, скажем, 0). Например, я хотел бы преобразовать
torch.Tensor(([1, 2, 3, 4, 3, 3, 4],
[1, 6, 3, 5, 3, 5, 4]])
до
torch.Tensor(([1, 2, 3, 4, 0, 0, 0],
[1, 6, 3, 5, 0, 0, 4]])
или
torch.Tensor(([1, 2, 3, 4, 0, 0, 0],
[1, 6, 3, 5, 4, 0, 0]])
Т.е. порядок в строках не имеет значения.Я пытался использовать pytorch.unique()
, и в документации упоминается, что измерение для получения уникальных значений может быть указано с помощью параметра dim
.Тем не менее, это не похоже на работу в этом случае.
Я пробовал:
output= torch.unique(torch.Tensor([[4,2,52,2,2],[5,2,6,6,5]]), dim = 1)
output
Что дает
tensor([[ 2., 2., 2., 4., 52.],
[ 2., 5., 6., 5., 6.]])
У кого-нибудь есть конкретное исправление для этого?Если возможно, я стараюсь избегать петель.