Spec-Zone.ru › TensorFlow

tf.nn.softmax_cross_entropy_with_logits

Вычисляет перекрестную энтропию softmax между logits и labels.

tf.nn.softmax_cross_entropy_with_logits(
    labels, logits, axis=-1, name=None
)

Измеряет ошибку вероятности в задачах дискретного классифицирования, в которых классы являются взаимно исключающими (каждый элемент принадлежит ровно одному классу). Например, каждый образ CIFAR-10 помечен одним и только одним меткой: образ может быть собакой или грузовиком, но не тем и другим одновременно.

Примечание: Хотя классы взаимно исключают друг друга, их вероятности могут не быть. Все, что требуется, — это то, что каждая строка labels является допустимым распределением вероятностей. Если это не так, вычисление градиента будет некорректным.

Если используются исключительные labels (где истинным является один и только один класс), см. sparse_softmax_cross_entropy_with_logits.

Использование:

logits = [[4.0, 2.0, 1.0], [0.0, 5.0, 1.0]]
labels = [[1.0, 0.0, 0.0], [0.0, 0.8, 0.2]]
tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits)
<tf.Tensor: shape=(2,), dtype=float32,
numpy=array([0.16984604, 0.82474494], dtype=float32)>
Предупреждение: Этот оператор ожидает несглаженные логиты, поскольку он выполняет softmax над logits внутри для повышения эффективности. Не вызывайте этот оператор с выходом от softmax, так как это приведет к неверным результатам.

Часто используется случай, когда логиты и метки имеют форму [batch_size, num_classes], но поддерживаются и более высокие размерности, при этом аргумент axis указывает размерность класса.

logits и labels должны иметь один и тот же тип данных (либо float16, либо float32, либо float64).

Обратное распространение будет происходить как в logits, так и в labels. Чтобы запретить обратное распространение в labels, передайте тензоры меток через tf.stop_gradient перед подачей их в эту функцию.

Обратите внимание, что для избежания путаницы требуется передавать только именованные аргументы в эту функцию.

Аргументы
labels Каждый вектор вдоль размерности класса должен содержать допустимое распределение вероятностей, например, в случае, когда метки имеют форму [batch_size, num_classes], каждая строка labels[i] должна быть допустимым распределением вероятностей.
logits Активации на метку, обычно линейный вывод. Эти энергии активации интерпретируются как несглаженные логарифмические вероятности.
axis Размерность класса. По умолчанию -1, что соответствует последней размерности.
name Имя операции (необязательно).
Возвращаемые значения
Tensor, содержащий потерю перекрестной энтропии softmax. Его тип совпадает с типом logits, а форма — с формой labels, за исключением последней размерности labels.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/nn/softmax_cross_entropy_with_logits

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API