Spec-Zone.ru › TensorFlow 2.9

tf.nn.softmax_cross_entropy_with_logits

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

Вычисляет софтмакс перекрёстную энтропию между 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, содержащий потерю софтмакс перекрёстной энтропии. Его тип совпадает с типом 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/versions/r2.9/api_docs/python/tf/nn/softmax_cross_entropy_with_logits

Spec-Zone.ru

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