Spec-Zone.ru › TensorFlow 2.9

tf.keras.losses.Reduction

Типы сокращения потерь.

Содержит следующие значения:

  • AUTO: Указывает, что параметр сокращения будет определён контекстом использования. В почти всех случаях он по умолчанию равен SUM_OVER_BATCH_SIZE. При использовании с tf.distribute.Strategy за пределами встроенных циклов обучения, таких как tf.keras compile и fit, ожидается, что значение сокращения будет SUM или NONE. Использование AUTO в этом случае приведёт к ошибке.
  • NONE: Дополнительное сокращение не применяется к выходу обернутой функции потерь. Когда нескалярные потери возвращаются в функции Keras, такие как fit/evaluate, несокращённый вектор потерь передаётся оптимизатору, но сообщаемые потери будут скалярным значением.

    Внимание: Проверьте форму выходов при использовании Reduction.NONE. Встроенные функции потерь, обернутые классами потерь, сокращают одну размерность (axis=-1, или axis если указано функцией потерь). Reduction.NONE просто означает, что класс-обёртка не применяет дополнительное сокращение. Для категориальных потерь с входной формой [batch, W, H, n_classes] размерность n_classes сокращается. Для точечных потерь необходимо включить фиктивную ось, чтобы [batch, W, H, 1] сократилось до [batch, W, H]. Без фиктивной оси [batch, W, H] будет некорректно сокращено до [batch, W].
  • SUM: Скалярная сумма взвешенных потерь.

  • SUM_OVER_BATCH_SIZE: Скалярное SUM, делённое на количество элементов в потерях. Этот тип сокращения не поддерживается при использовании с tf.distribute.Strategy за пределами встроенных циклов обучения, таких как tf.keras compile/fit.

    Вы можете реализовать 'SUM_OVER_BATCH_SIZE', используя глобальный размер пакета, например:

    with strategy.scope():
      loss_obj = tf.keras.losses.CategoricalCrossentropy(
          reduction=tf.keras.losses.Reduction.NONE)
      ....
      loss = tf.reduce_sum(loss_obj(labels, predictions)) *
          (1. / global_batch_size)
    

Для получения более подробной информации см. руководство по кастомизированному обучению.

Методы

all

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

@classmethod
all()

validate

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

@classmethod
validate(
    key
)
Переменные класса
AUTO 'auto'
NONE 'none'
SUM 'sum'
SUM_OVER_BATCH_SIZE 'sum_over_batch_size'

© 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/keras/losses/Reduction

Spec-Zone.ru

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