Для 1D тензора, tf.gather(values, tf.argsort(values)) эквивалентно tf.sort(values). Для тензоров более высокой размерности результат имеет ту же форму, что и values, но вдоль заданной оси значения представляют собой индекс отсортированного элемента в этом срезе тензора в заданной позиции.
Использование:
import tensorflow as tf
a = [1, 10, 26.9, 2.8, 166.32, 62.3]
b = tf.argsort(a,axis=-1,direction='ASCENDING',stable=False,name=None)
c = tf.keras.backend.eval(b)
# Here, c = [0 3 1 2 5 4]
Аргументы
values
Численный тензор 1D или выше.
axis
Ось, по которой необходимо выполнить сортировку. По умолчанию -1, что сортирует последнюю ось.
direction
Направление сортировки значений ('ASCENDING' или 'DESCENDING').
stable
Если True, равные элементы в исходном тензоре не будут переупорядочены в возвращаемом порядке. Неустойчивая сортировка ещё не реализована, но в конечном итоге станет значением по умолчанию по соображениям производительности. Если вам нужен устойчивый порядок, передайте stable=True для обеспечения совместимости с будущими версиями.
name
Необязательное имя операции.
Возвращаемые значения
Целочисленный тензор int32 Tensor с той же формой, что и values. Индексы, которые отсортируют каждый срез заданного values вдоль заданной axis.
Исключения
ValueError
Если ось не является константным скаляром или направление некорректно.