Spec-Zone.ru › TensorFlow

tf.keras.optimizers.Adadelta

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

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

tf.keras.optimizers.Adadelta(
    learning_rate=0.001,
    rho=0.95,
    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='adadelta',
    **kwargs
)

Оптимизация Adadelta — метод стохастического градиентного спуска, основанный на адаптивном значении скорости обучения по каждой размерности для устранения двух недостатков:

  • Постоянное уменьшение скорости обучения на протяжении обучения.
  • Необходимость ручного выбора глобальной скорости обучения.

Adadelta — более надёжное расширение Adagrad, которое адаптирует скорости обучения на основе скользящего окна обновлений градиента вместо накопления всех прошлых градиентов. Таким образом, Adadelta продолжает обучение даже после множества обновлений. По сравнению с Adagrad, в оригинальной версии Adadelta не нужно задавать начальную скорость обучения. В этой версии начальную скорость обучения можно задать, как и в большинстве других оптимизаторов Keras.

Аргументы
learning_rate Вещественное число, экземпляр keras.optimizers.schedules.LearningRateSchedule или вызываемый объект без аргументов, возвращающий фактическое значение для использования. Скорость обучения. По умолчанию 0.001. Обратите внимание, что Adadelta склонен к более высоким начальным значениям скорости обучения по сравнению с другими оптимизаторами. Чтобы соответствовать точной форме в оригинальной статье, используйте 1.0.
rho Вещественное значение. Скорость затухания. По умолчанию 0.95.
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 шаги, используя среднее значение градиентов с момента последнего обновления. Это известно как «накопление градиента». Это может быть полезно, когда размер вашей партии очень мал, чтобы уменьшить шум градиента на каждом шаге обновления.

Ссылка:

  • Zeiler, 2012
Атрибуты
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
)

exclude_from_weight_decay

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

exclude_from_weight_decay(
    var_list=None, var_names=None
)

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

Этот метод необходимо вызвать перед вызовом метода 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(
    grad, 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/Adadelta

Spec-Zone.ru

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