Функция unique
Функция unique возвращает отсортированные уникальные
элементы из входного тензора. Первым параметром функция
принимает тензор. Вторым параметром return_inverse
можно указать, нужно ли возвращать индексы для восстановления
исходного тензора. Третьим параметром return_counts
можно указать, нужно ли возвращать количество вхождений
каждого уникального элемента. Параметр dim позволяет
применять функцию к конкретному измерению.
Синтаксис
torch.unique(input, return_inverse=False, return_counts=False, dim=None)
Пример
Давайте найдём уникальные элементы в одномерном тензоре с повторяющимися значениями:
import torch
t = torch.tensor([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
res = torch.unique(t)
print(res)
Результат выполнения кода:
tensor([1, 2, 3, 4])
Пример
Давайте получим уникальные элементы и индексы для восстановления исходного тензора:
import torch
t = torch.tensor([5, 1, 5, 2, 2, 3])
unique_elements, inverse_indices = torch.unique(t, return_inverse=True)
print(unique_elements)
print(inverse_indices)
Результат выполнения кода:
tensor([1, 2, 3, 5])
tensor([3, 0, 3, 1, 1, 2])
Пример
Давайте найдём уникальные элементы и их количество вхождений в тензоре:
import torch
t = torch.tensor([1, 2, 2, 3, 3, 3, 4, 4])
unique_elements, counts = torch.unique(t, return_counts=True)
print(unique_elements)
print(counts)
Результат выполнения кода:
tensor([1, 2, 3, 4])
tensor([1, 2, 3, 2])
Пример
Давайте применим функцию unique к двумерному тензору по строкам:
import torch
t = torch.tensor([
[1, 2, 3],
[1, 2, 3],
[4, 5, 6]
])
res = torch.unique(t, dim=0)
print(res)
Результат выполнения кода:
tensor([
[1, 2, 3],
[4, 5, 6]
])
Пример
Давайте получим все уникальные элементы из двумерного тензора:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
[1, 2, 3]
])
res = torch.unique(t)
print(res)
Результат выполнения кода:
tensor([1, 2, 3, 4, 5, 6])