Spec-Zone.ru › TensorFlow 2.9

tf.keras.optimizers.experimental.Nadam

Оптимизатор, реализующий алгоритм Nadam.

Наследуется от: Optimizer, Module

tf.keras.optimizers.experimental.Nadam(
    learning_rate=0.001,
    beta_1=0.9,
    beta_2=0.999,
    epsilon=1e-07,
    clipnorm=None,
    clipvalue=None,
    global_clipnorm=None,
    use_ema=False,
    ema_momentum=0.99,
    ema_overwrite_frequency=None,
    jit_compile=True,
    name='Nadam',
    **kwargs
)

Подобно тому, как Adam представляет собой RMSprop с моментом, Nadam — это Adam с моментом Нестерова.

Аргументы
learning_rate Значение с плавающей точкой, расписание (объект tf.keras.optimizers.schedules.LearningRateSchedule), или вызываемая функция без аргументов, возвращающая фактическое значение. Скорость обучения. По умолчанию 0,001.
beta_1 Вещественное число или постоянный тензор с плавающей точкой, или вызываемая функция без аргументов, возвращающая фактическое значение. Экспоненциальная скорость затухания для оценок первого момента. По умолчанию 0,9.
beta_2 Вещественное число или постоянный тензор с плавающей точкой, или вызываемая функция без аргументов, возвращающая фактическое значение. Экспоненциальная скорость затухания для оценок второго момента. По умолчанию 0,999.
epsilon Малое постоянное значение для обеспечения числовой устойчивости. Эта величина ε — это «ε-шляпа» в статье Кингмы и Ба (в формуле перед разделом 2.1), а не ε в алгоритме 1 статьи. По умолчанию 1e-7.
name Строка. Имя, используемое для весов аккумуляторов импульса, созданных оптимизатором.
clipnorm Вещественное число. Если задано, градиент каждого веса индивидуально ограничивается сверху этим значением.
clipvalue Вещественное число. Если задано, градиент каждого веса ограничивается сверху этим значением.
global_clipnorm Вещественное число. Если задано, градиент всех весов ограничивается сверху этим значением.
use_ema Логическое значение, по умолчанию False. Если True, применяется экспоненциальное скользящее среднее (EMA). EMA состоит в вычислении экспоненциального скользящего среднего весов модели (поскольку значения весов изменяются после каждой обучающей выборки) и периодическом переписывании весов их скользящим средним.
ema_momentum Вещественное число, по умолчанию 0,99. Используется только если use_ema=True. Это импульс, который используется при вычислении EMA весов модели: new_average = ema_momentum * old_average + (1 - ema_momentum) * current_variable_value.
ema_overwrite_frequency Целое число или None, по умолчанию None. Используется только если use_ema=True. Каждые ema_overwrite_frequency шаги итераций мы перезаписываем переменную модели её скользящим средним. Если None, оптимизатор не перезаписывает переменные модели во время обучения, и вам необходимо явно перезаписать переменные в конце обучения, вызвав optimizer.finalize_variable_values() (что обновляет переменные модели на месте). При использовании встроенного цикла обучения fit(), это происходит автоматически после последней эпохи, и вам ничего не нужно делать.
jit_compile Логическое значение, по умолчанию True. Если True, оптимизатор будет использовать компиляцию XLA. jit_compile не может быть True при обучении с помощью tf.distribute.experimental.ParameterServerStrategy. Кроме того, если не найдено устройство GPU, этот флаг будет проигнорирован.
**kwargs Ключевые аргументы, используемые только для обеспечения обратной совместимости.

Ссылка:

  • Дозат, 2015.
Атрибуты
iterations Количество шагов обучения, выполненных этим optimizer.

По умолчанию итерации увеличиваются на единицу каждый раз, когда вызывается apply_gradients().

learning_rate

Методы

add_variable

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

add_variable(
    shape, dtype=None, initializer='zeros', name=None
)

Создание переменной оптимизатора.

Аргументы
shape Список целых чисел, кортеж целых чисел или одномерный тензор типа int32. По умолчанию скаляр, если не указано другое.
dtype Тип данных переменной оптимизатора, который будет создан. По умолчанию tf.keras.backend.floatx, если не указано другое.
initializer Строка или вызываемая функция. Экземпляр инициализатора.
name Имя создаваемой переменной оптимизатора.
Возвращаемое значение
Переменная оптимизатора в формате tf.Variable.

add_variable_from_reference

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

add_variable_from_reference(
    model_variable, variable_name, shape=None, initial_value=None
)

Создание переменной оптимизатора из переменной модели.

Создание переменной оптимизатора на основе информации о переменной модели. Например, в оптимизаторе SGD momentum для каждой переменной модели создается соответствующая переменная momentum той же формы и типа данных.

Аргументы
model_variable tf.Variable. Соответствующая переменная модели для создаваемой переменной оптимизатора.
variable_name Строка. Префикс имени создаваемой переменной оптимизатора. Имя создаваемых переменных будет следовать шаблону {variable_name}/{model_variable.name}, например, momemtum/dense_1.
shape Список или кортеж, по умолчанию None. Форма создаваемой переменной оптимизатора. Если None, созданная переменная будет иметь ту же форму, что и model_variable.
initial_value Тензор или Python-объект, преобразуемый в тензор, по умолчанию None. Начальное значение переменной оптимизатора. Если None, начальное значение будет по умолчанию 0.
Возвращаемое значение
Переменная оптимизатора.

aggregate_gradients

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

aggregate_gradients(
    grads_and_vars
)

Агрегирование градиентов на всех устройствах.

По умолчанию выполняется reduce_sum градиентов по устройствам. Пользователи могут реализовать свою логику агрегирования, переопределяя этот метод.

Аргументы
grads_and_vars Список пар (градиент, переменная).
Возвращаемое значение
Список пар (градиент, переменная).

apply_gradients

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

apply_gradients(
    grads_and_vars, skip_gradients_aggregation=False
)

Применение градиентов к переменным.

Аргументы
grads_and_vars Список пар (градиент, переменная).
skip_gradients_aggregation Если True, агрегирование градиентов не будет выполняться внутри оптимизатора. Обычно этот аргумент устанавливается в True, когда вы пишете пользовательский код агрегирования градиентов вне оптимизатора.
Возвращаемое значение
None
Исключения
TypeError Если grads_and_vars имеет неправильный формат.
RuntimeError Если вызывается в контексте кросс-репликации.

build

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

build(
    var_list
)

Инициализация переменных оптимизатора.

Оптимизатор Nadam имеет 2 типа переменных: моменты и скорости.

Аргументы
var_list Список переменных модели, на которых будут созданы переменные Nadam.

compute_gradients

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

compute_gradients(
    loss, var_list, tape=None
)

Вычисление градиентов потери по обучаемым переменным.

Аргументы
loss Функция потерь или вызываемая функция. Если вызываемая функция, loss должна не принимать аргументов и возвращать значение для минимизации.
var_list Список или кортеж объектов Variable, которые необходимо обновить для минимизации loss.
tape (Необязательно) tf.GradientTape. Если loss предоставлен как Tensor, необходимо предоставить ленту, которая вычислила loss.
Возвращаемое значение
Список пар (градиент, переменная). Переменная всегда присутствует, но градиент может быть None.

finalize_variable_values

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

finalize_variable_values(
    var_list
)

Установите конечное значение обучаемых переменных модели.

Иногда перед завершением обновлений переменных необходимо выполнить дополнительные шаги, такие как переопределение переменных модели их средним значением.

Аргументы
var_list список переменных модели.

from_config

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

@classmethod
from_config(
    config
)

Создаёт оптимизатор из его конфигурации.

Этот метод является обратным к get_config, позволяющим создать тот же оптимизатор из словаря конфигурации.

Аргументы
config Словарь Python, обычно результат вызова get_config.
Возвращаемое значение
Экземпляр оптимизатора.

get_config

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

get_config()

Возвращает конфигурацию оптимизатора.

Конфигурация оптимизатора — это словарь Python (сериализуемый), содержащий конфигурацию оптимизатора. Тот же оптимизатор может быть повторно создан позже (без сохранения состояния) из этой конфигурации.

Подклассы оптимизатора должны переопределить этот метод, чтобы включить другие гиперпараметры.

Возвращаемое значение
Словарь Python.

minimize

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

minimize(
    loss, var_list, tape=None
)

Минимизировать loss путём обновления var_list.

Этот метод просто вычисляет градиент с помощью tf.GradientTape и вызывает apply_gradients(). Если вы хотите обработать градиент перед применением, вызовите tf.GradientTape и apply_gradients() явно вместо использования этой функции.

Аргументы
loss Tensor или вызываемая функция. Если вызываемая функция, loss не должна принимать аргументов и должна возвращать значение для минимизации.
var_list список или кортеж объектов Variable для обновления, чтобы минимизировать loss.
tape (Необязательно) tf.GradientTape.
Возвращаемое значение
None

update_step

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

update_step(
    gradient, variable
)

Обновление шага, учитывая градиент и связанную переменную модели.

© 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/optimizers/experimental/Nadam

Spec-Zone.ru

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