Функция nn.sigmoid_cross_entropy_with_logits
Функция nn.sigmoid_cross_entropy_with_logits применяется для вычисления ошибки между предсказанными логитами и истинными метками в задачах бинарной классификации или многометочной классификации. Первым параметром передаются логиты (выходные значения модели до применения сигмоиды), вторым - метки. Функция объединяет в себе применение сигмоиды и вычисление кросс-энтропии, что делает вычисления численно устойчивыми.
Синтаксис
tf.nn.sigmoid_cross_entropy_with_logits(labels, logits, [name])
Пример
Давайте вычислим сигмоидную кросс-энтропию для простого случая с логитами 1.0, 2.0, 3.0 и метками 0.0, 1.0, 1.0:
import tensorflow as tf
logits = tf.constant([1.0, 2.0, 3.0])
labels = tf.constant([0.0, 1.0, 1.0])
loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=labels, logits=logits)
print(loss)
Результат выполнения кода:
tf.Tensor([1.3132616 0.126928 0.0485873], shape=(3,), dtype=float32)
Пример
Давайте вычислим сигмоидную кросс-энтропию для двумерного тензора логитов и меток:
import tensorflow as tf
logits = tf.constant([[1.0, 2.0], [3.0, 4.0]])
labels = tf.constant([[0.0, 1.0], [1.0, 0.0]])
loss = tf.nn.sigmoid_cross_entropy_with_logits(labels=labels, logits=logits)
print(loss)
Результат выполнения кода:
tf.Tensor(
[[1.3132616 0.126928 ]
[0.0485873 4.0181494]], shape=(2, 2), dtype=float32)
Смотрите также
-
функцию
sigmoid,
которая вычисляет сигмоиду -
функцию
softmax_cross_entropy_with_logits,
которая вычисляет softmax-кросс-энтропию -
функцию
sparse_softmax_cross_entropy_with_logits,
которая вычисляет разреженную softmax-кросс-энтропию -
функцию
weighted_cross_entropy_with_logits,
которая вычисляет взвешенную кросс-энтропию