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