Spec-Zone.ru › TensorFlow 2.9

tf.keras.dtensor.experimental.optimizers.Adagrad

Оптимизаторы, специфичные для DTensor.

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

tf.keras.dtensor.experimental.optimizers.Adagrad(
    learning_rate=0.001,
    initial_accumulator_value=0.1,
    epsilon=1e-07,
    gradients_clip_option=None,
    ema_option=None,
    name='Adagrad',
    mesh=None
)

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

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

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, initial_value=None
)

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

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

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

apply_gradients

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

apply_gradients(
    grads_and_vars
)

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

Аргументы
grads_and_vars Список пар (градиент, переменная).
Возвращает
None
Исключения
TypeError Если grads_and_vars имеет неправильный формат.

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.
END_OF_DOCUMENT_MARKER
Возвращаемое значение
Экземпляр оптимизатора.

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/dtensor/experimental/optimizers/Adagrad

Spec-Zone.ru

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