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)>
Общий случай использования — это наличие логарифмов и меток формы [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