Spec-Zone.ru › TensorFlow

tf.nn.sparse_softmax_cross_entropy_with_logits

Вычисляет разреженную перекрёстную энтропию softmax между logits и labels.

tf.nn.sparse_softmax_cross_entropy_with_logits(
    labels, logits, name=None
)

Используется в блокнотах

Используется в руководстве Используется в учебных пособиях
  • Распределённое обучение с Core API и DTensor
  • Многослойные перцептроны для распознавания цифр с Core API
  • Распределённое обучение с DTensor
  • Создание подписей к изображениям с визуальным вниманием
  • Использование XLA с tf.function

Измеряет ошибку вероятности в задачах дискретной классификации, в которых классы взаимоисключающие (каждая запись принадлежит ровно одному классу). Например, каждое изображение CIFAR-10 помечено одной и только одной меткой: изображение может быть собакой или грузовиком, но не тем и другим одновременно.

Примечание: Для этой операции предполагается, что вероятность заданной метки является исключительной. То есть мягкие классы не допускаются, а вектор labels должен содержать один конкретный индекс истинного класса для каждой строки logits (каждой записи мини-пакета). Для мягкой классификации softmax с распределением вероятностей для каждой записи см. softmax_cross_entropy_with_logits_v2.
Предупреждение: Эта операция ожидает нескорректированные логиты, поскольку для повышения эффективности внутри выполняет softmax над logits. Не вызывайте эту операцию с выходными данными softmax, так как это приведёт к неверным результатам.

Часто логиты имеют форму [batch_size, num_classes], а метки — форму [batch_size], однако поддерживаются и более высокие размерности; в этом случае предполагается, что размер dim-го измерения равен num_classes. logits должен иметь тип данных float16, float32 или float64, а labels должен иметь тип данных int32 или int64.

logits = tf.constant([[2., -5., .5, -.1],
                      [0., 0., 1.9, 1.4],
                      [-100., 100., -100., -100.]])
labels = tf.constant([0, 3, 1])
tf.nn.sparse_softmax_cross_entropy_with_logits(
    labels=labels, logits=logits).numpy()
array([0.29750752, 1.1448325 , 0.        ], dtype=float32)

Чтобы избежать путаницы, рекомендуется передавать этой функции только именованные аргументы.

Аргументы
labels Tensor формы [d_0, d_1, ..., d_{r-1}] (где r — ранг labels и результата) и типа данных int32 или int64. Каждая запись в labels должна быть индексом в [0, num_classes). Другие значения приведут к исключению при выполнении этой операции на CPU и к возврату NaN для соответствующей строки потерь и градиентов на GPU.
logits Нескорректированные логарифмические вероятности формы [d_0, d_1, ..., d_{r-1}, num_classes] и типа данных float16, float32 или float64.
name Имя операции (необязательно).
Возвращает
Tensor той же формы, что и labels, и того же типа, что и logits, содержащий значение функции потерь перекрёстной энтропии softmax.
Вызывает исключение
ValueError Если логиты являются скалярами (их ранг должен быть >= 1) или если ранг меток не равен рангу логитов минус один.

© 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/api_docs/python/tf/nn/sparse_softmax_cross_entropy_with_logits

Spec-Zone.ru

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