Spec-Zone.ru › TensorFlow 2.9
tf.sort Сортирует тензор.
tf.sort(
values, axis=-1, direction='ASCENDING', name=None
)
Использование:
a = [1, 10, 26.9, 2.8, 166.32, 62.3]
tf.sort(a).numpy()
array([ 1. , 2.8 , 10. , 26.9 , 62.3 , 166.32], dtype=float32)
tf.sort(a, direction='DESCENDING').numpy()
array([166.32, 62.3 , 26.9 , 10. , 2.8 , 1. ], dtype=float32)
Для многомерных входных данных вы можете контролировать, вдоль какой оси будет применяться сортировка. По умолчанию axis=-1 сортируется по самой внутренней оси.
mat = [[3,2,1],
[2,1,3],
[1,3,2]]
tf.sort(mat, axis=-1).numpy()
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]], dtype=int32)
tf.sort(mat, axis=0).numpy()
array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3]], dtype=int32)
См. также:
tf.argsort : Подобно sort, но возвращает индексы сортировки.
tf.math.top_k : Частичная сортировка, возвращающая фиксированное число лучших значений и соответствующих индексов.
Аргументы
values 1-D или многомерный числовой Tensor.
axis Ось, вдоль которой должна быть произведена сортировка. По умолчанию -1, что сортирует последнюю ось.
direction Направление сортировки значений ('ASCENDING' или 'DESCENDING').
name Необязательное имя операции.
Возвращает Тензор со значениями с тем же типом данных и формой, что и values, с элементами, отсортированными вдоль указанной axis.
Возможные исключения
tf.errors.InvalidArgumentError Если values.dtype не является типом float или int.
ValueError Если ось не является скалярной константой или направление недействительное.