РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
757 of 824 menu

Функция nn.in_top_k

Функция nn.in_top_k применяется к предсказаниям модели и проверяет, находится ли правильный класс среди K наиболее вероятных вариантов. Первым параметром передаются логиты или вероятности предсказаний формы [batch_size, num_classes]. Вторым параметром передаются истинные метки классов формы [batch_size]. Третьим параметром передается число K - сколько лучших предсказаний учитывать. Функция возвращает логический тензор формы [batch_size], где True означает, что истинный класс попал в топ-K, а False - что не попал.

Синтаксис

tf.nn.in_top_k(targets, predictions, k, name=None)

Пример

Давайте создадим матрицу логитов для трех примеров и проверим, попадает ли истинный класс в топ-2:

import tensorflow as tf predictions = tf.constant([ [0.1, 0.6, 0.3], [0.7, 0.2, 0.1], [0.2, 0.3, 0.5] ]) targets = tf.constant([1, 0, 2]) res = tf.nn.in_top_k(targets, predictions, k=2) print(res)

Результат выполнения кода:

tf.Tensor([ True True True], shape=(3,), dtype=bool)

Пример

Давайте проверим попадание в топ-1, где учитывается только самый вероятный класс:

<+python+> import tensorflow as tf predictions = tf.constant([ [0.1, 0.6, 0.3], [0.7, 0.2, 0.1], [0.2, 0.3, 0.5] ]) targets = tf.constant([1, 0, 1]) res = tf.nn.in_top_k(targets, predictions, k=1) print(res) <-python+>

Результат выполнения кода:

tf.Tensor([ True True False], shape=(3,), dtype=bool)

Пример

Давайте применим функцию к батчу из пяти примеров с четырьмя классами и вычислим точность топ-3:

import tensorflow as tf predictions = tf.constant([ [0.1, 0.5, 0.3, 0.1], [0.4, 0.2, 0.1, 0.3], [0.2, 0.1, 0.6, 0.1], [0.3, 0.3, 0.2, 0.2], [0.1, 0.1, 0.2, 0.6] ]) targets = tf.constant([1, 3, 0, 2, 0]) res = tf.nn.in_top_k(targets, predictions, k=3) print(res) print(tf.reduce_mean(tf.cast(res, tf.float32)))

Результат выполнения кода:

tf.Tensor([ True True True True False], shape=(5,), dtype=bool) tf.Tensor(0.8, shape=(), dtype=float32)

Смотрите также

  • функцию top_k,
    которая возвращает K наибольших значений и их индексы
  • функцию softmax,
    которая преобразует логиты в вероятности
  • функцию sparse_softmax_cross_entropy_with_logits,
    которая вычисляет кросс-энтропию по меткам классов
  • функцию softmax_cross_entropy_with_logits,
    которая вычисляет кросс-энтропию по one-hot меткам
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить