Spec-Zone.ru › TensorFlow 2.9

tf.argsort

View source on GitHub

Возвращает индексы тензора, которые дают его отсортированный порядок вдоль оси.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.argsort

tf.argsort(
    values, axis=-1, direction='ASCENDING', stable=False, name=None
)
values = [1, 10, 26.9, 2.8, 166.32, 62.3]
sort_order = tf.argsort(values)
sort_order.numpy()
array([0, 3, 1, 2, 5, 4], dtype=int32)

Для одномерного тензора:

sorted = tf.gather(values, sort_order)
assert tf.reduce_all(sorted == tf.sort(values))

Для тензоров более высокой размерности вывод имеет такую же форму, как values, но вдоль заданной оси значения представляют индекс отсортированного элемента в этом срезе тензора в заданной позиции.

mat = [[30,20,10],
       [20,10,30],
       [10,30,20]]
indices = tf.argsort(mat)
indices.numpy()
array([[2, 1, 0],
       [1, 0, 2],
       [0, 2, 1]], dtype=int32)

Если axis=-1 эти индексы могут быть использованы для применения сортировки с помощью tf.gather:

tf.gather(mat, indices, batch_dims=-1).numpy()
array([[10, 20, 30],
       [10, 20, 30],
       [10, 20, 30]], dtype=int32)

См. также:

  • tf.sort: Сортировка вдоль оси.
  • tf.math.top_k: Частичная сортировка, возвращающая фиксированное количество верхних значений и соответствующих индексов.
Аргументы
values 1-мерный или многомерный численный Tensor.
axis Ось, вдоль которой должна происходить сортировка. По умолчанию -1, что сортирует последнюю ось.
direction Направление сортировки значений ('ASCENDING' или 'DESCENDING').
stable Если True, равные элементы в исходном тензоре не будут переупорядочены в возвращаемом порядке. Неустойчивая сортировка ещё не реализована, но в конечном итоге станет по умолчанию по причинам производительности. Если вам нужен стабильный порядок, передайте stable=True для обеспечения совместимости в будущем.
name Необязательное имя для операции.
Возвращаемое значение
Целочисленный 32-битный тензор Tensor с той же формой, что и values. Индексы, которые отсортируют каждый срез данного values вдоль заданной axis.
Исключения
ValueError Если ось не является константным скаляром или направление некорректно.
tf.errors.InvalidArgumentError Если values.dtype не является типом float или int .

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/argsort

Spec-Zone.ru

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