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