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 et al., 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
)

Исключить переменные из расчёта 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/Adagrad

Spec-Zone.ru

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