torch.unique
-
torch.unique(input, sorted=True, return_inverse=False, return_counts=False, dim=None) → Tuple[Tensor, Tensor, Tensor] -
Возвращает уникальные элементы входного тензора.
Примечание
Эта функция отличается от
torch.unique_consecutive()тем, что эта функция также удаляет несмежные дублирующие значения.Примечание
В настоящее время в реализации CUDA и реализации CPU, когда указан dim,
torch.uniqueвсегда сортирует тензор в начале, независимо отsortаргумента. Сортировка может быть медленной, поэтому, если ваш входной тензор уже отсортирован, рекомендуется использоватьtorch.unique_consecutive(), что позволяет избежать сортировки.- Параметры:
-
- input (Тензор) – входной тензор
- sorted (bool) – Сортировать ли уникальные элементы в порядке возрастания перед возвратом в качестве выходных данных.
- return_inverse (bool) – Возвращать ли также индексы, для которых элементы в исходном входе оказались в возвращаемом уникальном списке.
- return_counts (bool) – Возвращать ли также количество для каждого уникального элемента.
-
dim (int) – размерность для применения уникальности. Если
None, возвращается уникальность сплющенного входа. По умолчанию:None
- Возвращает:
-
Тензор или кортеж тензоров, содержащий
- output (Тензор): список уникальных скалярных элементов.
-
inverse_indices (Тензор): (необязательно) если
return_inverseравно True, будет возвращен дополнительный тензор (такой же размерности, как входной), представляющий индексы, для которых элементы в исходном входе сопоставляются с элементами в выходе; в противном случае эта функция вернет только один тензор. -
counts (Тензор): (необязательно) если
return_countsравно True, будет возвращен дополнительный тензор (такой же размерности, как выходной или output.size(dim), если был указан dim), представляющий количество появлений каждого уникального значения или тензора.
- Тип возвращаемого значения:
Пример:
>>> output = torch.unique(torch.tensor([1, 3, 2, 3], dtype=torch.long)) >>> output tensor([1, 2, 3]) >>> output, inverse_indices = torch.unique( ... torch.tensor([1, 3, 2, 3], dtype=torch.long), sorted=True, return_inverse=True) >>> output tensor([1, 2, 3]) >>> inverse_indices tensor([0, 2, 1, 2]) >>> output, inverse_indices = torch.unique( ... torch.tensor([[1, 3], [2, 3]], dtype=torch.long), sorted=True, return_inverse=True) >>> output tensor([1, 2, 3]) >>> inverse_indices tensor([[0, 2], [1, 2]])
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.unique.html