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