Spec-Zone.ru › TensorFlow 2.3

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 Имя операции (необязательно).
Возвращаемое значение
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.3/api_docs/python/tf/nn/softmax_cross_entropy_with_logits

Spec-Zone.ru

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