Spec-Zone.ru › TensorFlow

tf.keras.optimizers.Nadam

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

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

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

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

Аргументы
learning_rate Вещественное число, экземпляр keras.optimizers.schedules.LearningRateSchedule или вызываемая функция без аргументов, возвращающая фактическое значение. Скорость обучения. По умолчанию 0.001.
beta_1 Вещественное значение или тензор с постоянным вещественным значением, или вызываемая функция без аргументов, возвращающая фактическое значение. Экспоненциальная скорость затухания для оценок первого момента. По умолчанию 0.9.
beta_2 Вещественное значение или тензор с постоянным вещественным значением, или вызываемая функция без аргументов, возвращающая фактическое значение. Экспоненциальная скорость затухания для оценок второго момента. По умолчанию 0.999.
epsilon Небольшая константа для числовой устойчивости. Эта величина ε — это "epsilon hat" в статье Кингмы и Ба (в формуле непосредственно перед разделом 2.1), а не ε в Алгоритме 1 статьи. По умолчанию 1e-7.
name Строка. Имя для использования для весов аккумуляторов моментов, созданных оптимизатором.
weight_decay Вещественное число. Если задано, применяется затухание весов.
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() это происходит автоматически после последней эпохи, и вам ничего не нужно делать.
loss_scale_factor Вещественное число или None. Если вещественное число, коэффициент масштабирования умножается на потерю перед вычислением градиентов, а обратное значение коэффициента масштабирования умножается на градиенты перед обновлением переменных. Полезно для предотвращения потери точности во время обучения с плавающей запятой смешанной точности. В качестве альтернативы, keras.optimizers.LossScaleOptimizer автоматически установит коэффициент масштабирования потерь.
gradient_accumulation_steps Целое число или None. Если целое число, переменные модели и оптимизатора не будут обновляться на каждом шаге; вместо этого они будут обновляться каждые gradient_accumulation_steps шаги, используя среднее значение градиентов с момента последнего обновления. Это известно как "накопление градиента". Это может быть полезно, когда размер вашей группы очень мал, чтобы уменьшить шум градиента на каждом шаге обновления.

Ссылка:

  • Dozat, 2015.
Атрибуты
learning_rate
variables

Методы

add_variable

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

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

add_variable_from_reference

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

add_variable_from_reference(
    reference_variable, name=None, initializer='zeros'
)

Добавление переменной со значениями нуль, с формой и типом переменной-справочника.

apply

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

apply(
    grads, trainable_variables=None
)

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

grads должна быть списком тензоров градиента с соответствием 1 к 1 списку переменных, с которыми был создан оптимизатор.

trainable_variables может быть предоставлен при первом вызове для построения оптимизатора.

apply_gradients

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

apply_gradients(
    grads_and_vars
)

assign

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

assign(
    variable, value
)

Присваивание значения переменной.

Это должно использоваться в оптимизаторах вместо variable.assign(value) для поддержки оптимизаций, специфичных для бэкенда. Обратите внимание, что переменная может быть переменной модели или переменной оптимизатора; она может быть переменной, нативной для бэкенда, или переменной Keras.

Аргументы
variable Переменная, которую нужно обновить.
value Значение, которое нужно добавить к переменной.

assign_add

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

assign_add(
    variable, value
)

Добавление значения к переменной.

Это должно использоваться в оптимизаторах вместо variable.assign_add(value) для поддержки оптимизаций, специфичных для бэкенда. Обратите внимание, что переменная может быть переменной модели или переменной оптимизатора; она может быть переменной, нативной для бэкенда, или переменной Keras.

Аргументы
variable Переменная, которую нужно обновить.
value Значение, которое нужно добавить к переменной.

assign_sub

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

assign_sub(
    variable, value
)

Вычитание значения из переменной.

Это должно использоваться в оптимизаторах вместо variable.assign_sub(value) для поддержки оптимизаций, специфичных для бэкенда. Обратите внимание, что переменная может быть переменной модели или переменной оптимизатора; она может быть переменной, нативной для бэкенда, или переменной Keras.

Аргументы
variable Переменная, которую нужно обновить.
value Значение, которое нужно вычесть из переменной.

build

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

build(
    var_list
)

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

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

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

exclude_from_weight_decay

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

END_OF_DOCUMENT_MARKER
exclude_from_weight_decay(
    var_list=None, var_names=None
)

Исключить переменные из распада весов.

Этот метод необходимо вызвать до вызова метода build оптимизатора. Вы можете указать конкретные переменные для исключения или задать список строк как ключевые слова. Если хотя бы одно из этих ключевых слов содержится в имени переменной, она будет исключена.

Аргументы
var_list Список переменных, которые необходимо исключить из распада весов.
var_names Список строк. Если любая строка из var_names содержится в имени переменной модели, эта переменная модели исключается из распада весов. Например, var_names=['bias'] исключает все переменные смещения из распада весов.

finalize_variable_values

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

finalize_variable_values(
    var_list
)

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

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

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

from_config

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

@classmethod
from_config(
    config, custom_objects=None
)

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

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

Аргументы
config Словарь Python, обычно результат работы метода get_config.
custom_objects Словарь Python, сопоставляющий имена дополнительным пользовательским объектам Python, необходимым для повторного создания этого оптимизатора.
Возвращает
Экземпляр оптимизатора.

get_config

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

get_config()

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

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

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

Возвращает
Словарь Python.

load_own_variables

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

load_own_variables(
    store
)

Устанавливает состояние этого объекта оптимизатора.

save_own_variables

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

save_own_variables(
    store
)

Получает состояние этого объекта оптимизатора.

scale_loss

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

scale_loss(
    loss
)

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

Масштабирует потерю перед вычислением градиентов в train_step. Это в первую очередь полезно при обучении с использованием смешанной точности, чтобы предотвратить численный подтек.

set_weights

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

set_weights(
    weights
)

Устанавливает веса оптимизатора.

stateless_apply

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

stateless_apply(
    optimizer_variables, grads, trainable_variables
)

update_step

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

update_step(
    gradient, variable, learning_rate
)

Обновление шага с учетом градиента и соответствующей переменной модели.

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

Spec-Zone.ru

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