tf.keras.losses.Reduction
Типы уменьшения потерь.
Содержит следующие значения:
-
AUTO: Указывает, что параметр уменьшения будет определяться контекстом использования. Почти во всех случаях по умолчанию он устанавливается вSUM_OVER_BATCH_SIZE. При использовании сtf.distribute.Strategy, за пределами встроенных циклов обучения, таких какtf.kerascompileиfit, мы ожидаем, что значение уменьшения будетSUMилиNONE. ИспользованиеAUTOв этом случае вызовет ошибку. -
NONE: Весовые потери с уменьшением по одной размерности (ось=-1 или ось, указанная функцией потерь). При использовании этого типа уменьшения с встроенными циклами обучения Keras, такими какfit/evaluate, вектор потерь без уменьшения передаётся оптимизатору, но сообщаемые потери будут скалярным значением. -
SUM: Скалярная сумма взвешенных потерь. -
SUM_OVER_BATCH_SIZE: Скалярное значениеSUM, делённое на количество элементов в потерях. Этот тип уменьшения не поддерживается при использовании сtf.distribute.Strategyза пределами встроенных циклов обучения, таких какtf.kerascompile/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_object(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'
© 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/keras/losses/Reduction