Функция top_k
Функция top_k возвращает заданное количество наибольших значений тензора и их индексы вдоль последней оси. Первым параметром функция принимает входной тензор, вторым - количество наибольших элементов k. Третьим параметром можно передать логическое значение sorted, которое указывает, нужно ли сортировать результат по убыванию значений. Функция возвращает кортеж из двух тензоров: значения и индексы.
Синтаксис
tf.math.top_k(input, k, [sorted], [index_type])
Пример
Давайте найдем три наибольших значения в одномерном тензоре:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
res = tf.math.top_k(t, k=3)
print(res.values)
print(res.indices)
Результат выполнения кода:
tf.Tensor([5 4 3], shape=(3,), dtype=int32)
tf.Tensor([4 3 2], shape=(3,), dtype=int32)
Пример
Давайте найдем два наибольших значения без сортировки результата:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
res = tf.math.top_k(t, k=2, sorted=False)
print(res.values)
print(res.indices)
Результат выполнения кода:
tf.Tensor([5 4], shape=(2,), dtype=int32)
tf.Tensor([4 3], shape=(2,), dtype=int32)
Пример
Давайте найдем два наибольших значения в каждой строке двумерного тензора:
<+python+>
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]])
res = tf.math.top_k(t, k=2)
print(res.values)
print(res.indices)
<-python+>
Результат выполнения кода:
tf.Tensor(
[[3 2]
[6 5]], shape=(2, 2), dtype=int32)
tf.Tensor(
[[2 1]
[2 1]], shape=(2, 2), dtype=int32)
Смотрите также
-
функцию
sort,
которая сортирует тензор по возрастанию -
функцию
argsort,
которая возвращает индексы сортировки тензора -
функцию
argmax,
которая возвращает индекс максимального значения -
функцию
reduce_max,
которая возвращает максимальное значение тензора