Spec-Zone.ru › TensorFlow

tf.keras.optimizers.Adagrad

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

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

tf.keras.optimizers.Adagrad(
    learning_rate=0.001,
    initial_accumulator_value=0.1,
    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='adagrad',
    **kwargs
)

Используется в блокнотах

Используется в руководстве Используется в учебных материалах
  • Переход с Estimator на API Keras
  • Переход с LoggingTensorHook и StopAtStepHook на обратные вызовы Keras
  • Переход на метрики и оптимизаторы
  • Переход с обучения на нескольких GPU с одним рабочим узлом
  • Переход с SessionRunHook на обратные вызовы Keras
  • Создание моделей глубокого поиска
  • Ранжирование по списку
  • Многозадачные рекомендательные системы
  • Эффективное для клиента федеративное обучение больших моделей с помощью `federated_select` и разреженной агрегации
  • Использование контекстных признаков

Adagrad — это оптимизатор с индивидуальными для параметров скоростями обучения, которые адаптируются в зависимости от частоты обновления параметра во время обучения. Чем чаще обновляется параметр, тем меньше становятся его обновления.

Аргументы
learning_rate Число с плавающей точкой, экземпляр keras.optimizers.schedules.LearningRateSchedule или вызываемый объект без аргументов, возвращающий используемое значение. Скорость обучения. По умолчанию — 0.001. Обратите внимание: для Adagrad, как правило, полезны более высокие начальные значения скорости обучения по сравнению с другими оптимизаторами. Чтобы точно соответствовать формуле из исходной статьи, используйте 1.0.
initial_accumulator_value Значение с плавающей точкой. Начальное значение аккумуляторов (значений импульса для каждого параметра). Должно быть неотрицательным.
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 шагов с использованием среднего значения градиентов, вычисленных со времени последнего обновления. Это называется «накоплением градиентов». Такой подход может быть полезен при очень маленьком размере пакета, чтобы уменьшить шум градиента на каждом шаге обновления.

Ссылка:

  • Duchi и др., 2011.
Атрибуты
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 должен быть списком тензоров градиентов, соответствующих один к одному списку переменных, с которыми был создан оптимизатор.

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 Список Variables, которые нужно исключить из затухания весов.
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/Adagrad

Spec-Zone.ru

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