Spec-Zone.ru › TensorFlow 2.9

tf.keras.optimizers.experimental.Adagrad

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

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

tf.keras.optimizers.experimental.Adagrad(
    learning_rate=0.001,
    initial_accumulator_value=0.1,
    epsilon=1e-07,
    clipnorm=None,
    clipvalue=None,
    global_clipnorm=None,
    use_ema=False,
    ema_momentum=0.99,
    ema_overwrite_frequency=None,
    jit_compile=True,
    name='Adagrad',
    **kwargs
)

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

Аргументы
learning_rate Начальное значение скорости обучения: либо число с плавающей точкой, либо экземпляр tf.keras.optimizers.schedules.LearningRateSchedule. По умолчанию 0.001. Обратите внимание, что Adagrad часто выигрывает от более высоких начальных значений скорости обучения по сравнению с другими оптимизаторами. Чтобы точно воспроизвести формулу из оригинальной статьи, используйте 1.0.
initial_accumulator_value Значение с плавающей точкой. Начальное значение для аккумуляторов (значения импульса на параметр). Должно быть неотрицательным.
epsilon Малое значение с плавающей точкой, используемое для поддержания числовой устойчивости.
name Строка. Имя, используемое для весов аккумулятора импульса, созданных оптимизатором.
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(), это происходит автоматически после последней эпохи, и вам ничего не нужно делать.
jit_compile Булево значение, по умолчанию True. Если True, оптимизатор будет использовать XLA компиляцию. jit_compile не может быть True при обучении с tf.distribute.experimental.ParameterServerStrategy. Кроме того, если не найдено ни одного устройства GPU, этот флаг будет проигнорирован.
**kwargs аргументы ключевого слова, используемые только для обратной совместимости.

Ссылка:

  • Duchi et al., 2011.
Атрибуты
iterations Количество шагов обучения, пройденных этим optimizer.

По умолчанию, итерации будут увеличиваться на единицу каждый раз, когда вызывается apply_gradients().

learning_rate

Методы

add_variable

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

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

Создать переменную оптимизатора.

Аргументы
shape Список целых чисел, кортеж целых чисел или 1-мерный тензор типа int32. По умолчанию скаляр, если не указано.
dtype Тип данных переменной оптимизатора, который будет создан. По умолчанию tf.keras.backend.floatx, если не указано.
initializer строка или вызываемый объект. Экземпляр инициализатора.
name Имя создаваемой переменной оптимизатора.
Возвращаемые значения
Переменная оптимизатора в формате tf.Variable.

add_variable_from_reference

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

add_variable_from_reference(
    model_variable, variable_name, shape=None, initial_value=None
)

Создать переменную оптимизатора из переменной модели.

Создать переменную оптимизатора на основе информации о переменной модели. Например, в оптимизаторе SGD с моментом, для каждой переменной модели создается соответствующая переменная момента той же формы и типа.

Аргументы
model_variable tf.Variable. Соответствующая переменная модели для создаваемой переменной оптимизатора.
variable_name Строка. Префикс имени создаваемой переменной оптимизатора. Имя создаваемой переменной будет следовать шаблону {variable_name}/{model_variable.name}, например, momemtum/dense_1.
shape Список или кортеж, по умолчанию None. Форма создаваемой переменной оптимизатора. Если None, созданная переменная будет иметь ту же форму, что и model_variable.
initial_value Тензор или Python-объект, преобразуемый в тензор, по умолчанию None. Начальное значение переменной оптимизатора, если None, начальное значение будет по умолчанию 0.
Возвращаемые значения
Переменная оптимизатора.

aggregate_gradients

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

aggregate_gradients(
    grads_and_vars
)

Агрегировать градиенты на всех устройствах.

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

Аргументы
grads_and_vars Список пар (градиент, переменная).
Возвращаемые значения
Список пар (градиент, переменная).

apply_gradients

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

apply_gradients(
    grads_and_vars, skip_gradients_aggregation=False
)

Применить градиенты к переменным.

Аргументы
grads_and_vars Список пар (градиент, переменная).
skip_gradients_aggregation Если True, агрегация градиентов не будет выполняться внутри оптимизатора. Обычно этот аргумент устанавливается в True, когда вы пишете пользовательский код, агрегирующий градиенты вне оптимизатора.
Возвращаемые значения
None
Возможные исключения
TypeError Если grads_and_vars имеет неправильный формат.
RuntimeError Если вызвана в контексте кроссрепликации.

build

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

build(
    var_list
)

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

Этот метод должен быть реализован дочерними оптимизаторами, и дочерним оптимизаторам необходимо вызвать super().build(var_list).

Аргументы
var_list Список переменных модели, для которых строятся оптимизаторы. Например, оптимизатор SGD с моментом будет хранить одну переменную момента, соответствующую каждой переменной модели.

compute_gradients

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

compute_gradients(
    loss, var_list, tape=None
)

Вычислить градиенты потери на обучаемых переменных.

Аргументы
loss Tensor или вызываемый объект. Если вызываемый объект, loss не должен принимать аргументов и должен возвращать значение, которое нужно минимизировать.
var_list список или кортеж объектов Variable, которые нужно обновить, чтобы минимизировать loss.
tape (Необязательно) tf.GradientTape. Если loss предоставлен как Tensor, лента, которая вычислила loss, должна быть предоставлена.
Возвращаемые значения
Список пар (градиент, переменная). Переменная всегда присутствует, но градиент может быть None.

finalize_variable_values

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

finalize_variable_values(
    var_list
)

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

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

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

from_config

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

@classmethod
from_config(
    config
)

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

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

Аргументы
config словарь Python, обычно результат работы get_config.
Возвращает
Экземпляр оптимизатора.

get_config

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

get_config()

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

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

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

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

minimize

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

minimize(
    loss, var_list, tape=None
)

Минимизировать loss путем обновления var_list.

Этот метод просто вычисляет градиент с помощью tf.GradientTape и вызывает apply_gradients(). Если вы хотите обработать градиент перед применением, то вызовите tf.GradientTape и apply_gradients() явно вместо использования этой функции.

Аргументы
loss Tensor или вызываемая функция. Если вызываемая функция, loss не должна принимать аргументы и возвращать значение для минимизации.
var_list список или кортеж объектов Variable для обновления, чтобы минимизировать loss.
tape (Необязательно) tf.GradientTape.
Возвращает
None

update_step

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

update_step(
    grad, variable
)

Шаг обновления, заданный градиентом и связанной переменной модели.

© 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/versions/r2.9/api_docs/python/tf/keras/optimizers/experimental/Adagrad

Spec-Zone.ru

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