Spec-Zone.ru › TensorFlow 2.4

tf.nn.softmax_cross_entropy_with_logits

Просмотреть исходный код на GitHub

Вычисляет перекрёстную энтропию 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 Имя операции (необязательно).
Возвращаемое значение
A Tensor, содержащий потерю перекрёстной энтропии softmax. Его тип совпадает с типом logits, а форма совпадает с формой labels, за исключением того, что у него отсутствует последняя размерность labels.

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

Spec-Zone.ru

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