Для одномерного тензора, 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
Численный тензор 1-й или более высокой размерности.
axis
Ось, по которой производится сортировка. По умолчанию -1, что сортирует последнюю ось.
direction
Направление сортировки значений ('ASCENDING' или 'DESCENDING').
stable
Если True, равные элементы в исходном тензоре не будут переупорядочены в возвращаемом порядке. Неустойчивая сортировка пока не реализована, но в конечном итоге станет по умолчанию по причинам производительности. Если вам нужен устойчивый порядок, передайте stable=True для совместимости с будущими версиями.
name
Необязательное имя операции.
Возвращаемое значение
Целочисленный тензор int32 Tensor такой же формы, как values. Индексы, которые бы отсортировали каждый срез данного values вдоль заданной axis.
Исключения
ValueError
Если ось не является скалярной константой или направление недопустимо.