Spec-Zone.ru › TensorFlow

tf.keras.optimizers.Adamax

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

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

tf.keras.optimizers.Adamax(
    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='adamax',
    **kwargs
)

Adamax, являющийся вариантом Adam, основанный на бесконечной норме, является методом оптимизации первого порядка, основанным на градиентах. Благодаря способности адаптировать скорость обучения в зависимости от характеристик данных, он подходит для обучения временных процессов, например, данных речи с динамически изменяющимися условиями шума. Значения параметров по умолчанию соответствуют значениям, приведенным в статье (см. ссылки ниже).

Инициализация:

m = 0  # Initialize initial 1st moment vector
u = 0  # Initialize the exponentially weighted infinity norm
t = 0  # Initialize timestep

Правило обновления параметра w с градиентом g описано в конце раздела 7.1 статьи (см. раздел ссылок):

t += 1
m = beta1 * m + (1 - beta) * g
u = max(beta2 * u, abs(g))
current_lr = learning_rate / (1 - beta1 ** t)
w = w - current_lr * m / (u + epsilon)
Аргументы
learning_rate Число, экземпляр keras.optimizers.schedules.LearningRateSchedule или вызываемый объект без аргументов, возвращающий фактическое значение для использования. Скорость обучения. По умолчанию 0.001.
beta_1 Вещественное значение или тензор с постоянным вещественным значением. Экспоненциальная скорость затухания для оценок первого момента.
beta_2 Вещественное значение или тензор с постоянным вещественным значением. Экспоненциальная скорость затухания для экспоненциально взвешенной бесконечной нормы.
epsilon Маленькая константа для обеспечения числовой устойчивости. 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 шаги, используя среднее значение градиентов с момента последнего обновления. Это известно как "накопление градиента". Это может быть полезно, когда размер вашей партии очень мал, для уменьшения шума градиента на каждом шаге обновления.

Ссылка:

  • Kingma et al., 2014
Атрибуты
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
)

Инициализировать переменные оптимизатора.

Оптимизатор Adamax имеет 2 типа переменных: импульсы (обозначенные как m), экспоненциально взвешенная бесконечная норма (обозначенная как u).

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

exclude_from_weight_decay

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

exclude_from_weight_decay(
    var_list=None, var_names=None
)

Исключить переменные из расчёта weight decay.

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

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

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/Adamax

Spec-Zone.ru

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