tf.mixed_precision.experimental.FixedLossScale
Масштаб потерь с фиксированным значением.
Наследуется от: LossScale
tf.mixed_precision.experimental.FixedLossScale(
loss_scale_value
)
Масштаб потерь не обновляется на протяжении всего жизненного цикла экземпляров этого класса. Данный экземпляр этого класса всегда возвращает одно и то же число при вызове.
| Аргументы | |
|---|---|
loss_scale_value | Вещественное число Python. Его оптимальное значение зависит от моделей, которые необходимо запустить. Выбор слишком маленького масштаба потерь может повлиять на качество модели; слишком большой масштаб потерь может привести к inf или nan. Нет единственного правильного масштаба потерь для применения. Нет вреда в выборе относительно большого числа, если в процессе обучения не встречаются nan или inf. |
| Исключения | |
|---|---|
ValueError | Если значение loss_scale_value меньше 1. |
Методы
from_config
@classmethod
from_config(
config
)
Создаёт LossScale из его конфигурации.
get_config
get_config()
Возвращает конфигурацию данного масштаба потерь.
update
update(
grads
)
Обновляет значение масштаба потерь.
Масштаб потерь будет потенциально обновлён на основе значения grads. Тензор, возвращаемый при вызове этого класса, обновляется только при вычислении этой функции.
В режиме eager это напрямую обновляет масштаб потерь, поэтому вызов __call__ вернёт обновлённый масштаб потерь. В режиме графа это возвращает операцию, которая, при вычислении, обновляет масштаб потерь.
Эта функция также возвращает should_apply_gradients логическое значение. Если False, градиенты не должны применяться к переменным, к которым выполняется шаг, так как были обнаружены бесконечные или NaN градиенты, и масштаб потерь был обновлён, чтобы уменьшить вероятность нахождения бесконечных или NaN градиентов на следующем шаге. Некоторые классы масштабов потерь всегда будут возвращать True, так как они не могут адаптироваться в ответ на бесконечные или NaN градиенты.
При использовании DistributionStrategy эта функция может вызываться только в контексте межреплицируемого выполнения.
| Аргументы | |
|---|---|
grads | Вложенная структура не масштабированных градиентов, каждый из которых является градиентом потерь относительно веса. Градиенты должны быть предварительно разделены на масштаб потерь перед передачей в эту функцию. Принимаются градиенты 'None', которые игнорируются. |
| Возвращаемые значения | |
|---|---|
update_op | В режиме eager — None. В режиме графа — операция для обновления масштаба потерь. |
should_apply_gradients | Логическое значение или скалярный логический тензор. Если False, вызывающий код должен пропустить применение grads к переменным на этом шаге. |
__call__
__call__()
Возвращает текущий масштаб потерь как скалярный float32 тензор.
© 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/mixed_precision/experimental/FixedLossScale