Spec-Zone.ru › PyTorch 1

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API