Spec-Zone.ru › PyTorch 2.14

torch.sort

torch.sort(input, dim=-1, descending=False, *, stable=False, out=None)

Сортирует элементы тензора input вдоль заданного измерения по возрастанию значений.

Если измерение dim не задано, выбирается последнее измерение input.

Если descending равно True, элементы сортируются по убыванию значений.

Если stable равно True, алгоритм сортировки становится устойчивым, сохраняя порядок эквивалентных элементов.

Возвращается именованный кортеж (values, indices), где values — это отсортированные значения, а indices — индексы элементов в исходном тензоре input.

Параметры:
  • input (Tensor) – входной тензор.
  • dim (int, необязательный) – измерение, вдоль которого выполняется сортировка
  • descending (bool, необязательный) – задаёт порядок сортировки (по возрастанию или по убыванию)
Именованные аргументы:
  • stable (bool, необязательный) – делает алгоритм сортировки устойчивым, гарантируя сохранение порядка эквивалентных элементов.
  • out (tuple, необязательный) – выходной кортеж из (Tensor, LongTensor), который можно задать для использования в качестве буферов вывода

Пример:

>>> x = torch.randn(3, 4)
>>> sorted, indices = torch.sort(x)
>>> sorted
tensor([[-0.2162,  0.0608,  0.6719,  2.3332],
        [-0.5793,  0.0061,  0.6058,  0.9497],
        [-0.5071,  0.3343,  0.9553,  1.0960]])
>>> indices
tensor([[ 1,  0,  2,  3],
        [ 3,  1,  0,  2],
        [ 0,  3,  1,  2]])

>>> sorted, indices = torch.sort(x, 0)
>>> sorted
tensor([[-0.5071, -0.2162,  0.6719, -0.5793],
        [ 0.0608,  0.0061,  0.9497,  0.3343],
        [ 0.6058,  0.9553,  1.0960,  2.3332]])
>>> indices
tensor([[ 2,  0,  0,  1],
        [ 0,  1,  1,  2],
        [ 1,  2,  2,  0]])
>>> x = torch.tensor([0, 1] * 9)
>>> x.sort()
torch.return_types.sort(
    values=tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]),
    indices=tensor([ 2, 16,  4,  6, 14,  8,  0, 10, 12,  9, 17, 15, 13, 11,  7,  5,  3,  1]))
>>> x.sort(stable=True)
torch.return_types.sort(
    values=tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]),
    indices=tensor([ 0,  2,  4,  6,  8, 10, 12, 14, 16,  1,  3,  5,  7,  9, 11, 13, 15, 17]))

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.sort.html

Spec-Zone.ru

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