Spec-Zone.ru › TensorFlow 2.4

tf.compat.v1.train.AdagradDAOptimizer

Алгоритм Adagrad Dual Averaging для разреженных линейных моделей.

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

tf.compat.v1.train.AdagradDAOptimizer(
    learning_rate, global_step, initial_gradient_squared_accumulator_value=0.1,
    l1_regularization_strength=0.0, l2_regularization_strength=0.0,
    use_locking=False, name='AdagradDA'
)

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

AdagradDA обычно используется, когда требуется большая разреженность в обученной модели. Этот оптимизатор гарантирует разреженность только для линейных моделей. Будьте осторожны при использовании AdagradDA для глубоких сетей, так как для обучения потребуется тщательная инициализация накопителей градиента.

Ссылки:

Adaptive Subgradient Methods for Online Learning and Stochastic Optimization :Duchi et al., 2011 (pdf)

Аргументы
learning_rate Значение типа Tensor или число с плавающей точкой. Скорость обучения.
global_step Значение типа Tensor , содержащее номер текущего шага обучения.
initial_gradient_squared_accumulator_value Число с плавающей точкой. Начальное значение для накопителей, должно быть положительным.
l1_regularization_strength Вещественное число, должно быть больше или равно нулю.
l2_regularization_strength Вещественное число, должно быть больше или равно нулю.
use_locking Если True, использовать блокировки для операций обновления.
name Необязательный префикс имени для операций, созданных при применении градиентов. По умолчанию "AdagradDA".
Исключения
ValueError Если значение initial_gradient_squared_accumulator_value некорректно.

Методы

apply_gradients

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

apply_gradients(
    grads_and_vars, global_step=None, name=None
)

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

Это вторая часть minimize(). Она возвращает Operation, который применяет градиенты.

Аргументы
grads_and_vars Список пар (градиент, переменная), как возвращается compute_gradients().
global_step Необязательный Variable, увеличивающийся на единицу после обновления переменных.
name Необязательное имя возвращаемой операции. По умолчанию совпадает с именем, переданным в конструктор Optimizer.
Возвращаемое значение
Operation, который применяет указанные градиенты. Если global_step не равно None, эта операция также увеличивает global_step.
Исключения
TypeError Если grads_and_vars имеет неправильный формат.
ValueError Если ни одна из переменных не имеет градиентов.
RuntimeError Если необходимо использовать _distributed_apply() вместо этого.

compute_gradients

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

compute_gradients(
    loss, var_list=None, gate_gradients=GATE_OP, aggregation_method=None,
    colocate_gradients_with_ops=False, grad_loss=None
)

Вычисление градиентов loss для переменных в var_list.

Это первая часть minimize(). Она возвращает список пар (градиент, переменная), где "градиент" — это градиент для "переменной". Обратите внимание, что "градиент" может быть Tensor, IndexedSlices, или None если для данной переменной нет градиента.

Аргументы
loss Tensor, содержащий значение для минимизации, или вызываемая функция без аргументов, возвращающая значение для минимизации. При включенном режиме eager execution должна быть вызываемой функцией.
var_list Необязательный список или кортеж tf.Variable для обновления, чтобы минимизировать loss. По умолчанию это список переменных, собранных в графе под ключом GraphKeys.TRAINABLE_VARIABLES.
gate_gradients Способ управления вычислением градиентов. Может быть GATE_NONE, GATE_OP или GATE_GRAPH.
aggregation_method Указывает метод объединения членов градиента. Действительные значения определены в классе AggregationMethod.
colocate_gradients_with_ops Если True, попытаться расположить градиенты совместно с соответствующей операцией.
grad_loss Необязательно. Tensor , содержащий градиент, вычисленный для loss.
Возвращаемое значение
Список пар (градиент, переменная). Переменная всегда присутствует, но градиент может быть None.
Исключения
TypeError Если var_list содержит что-либо кроме объектов Variable .
ValueError Если некоторые аргументы некорректны.
RuntimeError Если вызвано с включенным режимом eager execution, а loss не является вызываемой функцией.

Приоритетная совместимость

При включенном режиме жадного выполнения, gate_gradients, aggregation_method, и colocate_gradients_with_ops игнорируются.

get_name

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

get_name()

get_slot

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

get_slot(
    var, name
)

Возвращает слот с именем name, созданный для var оптимизатором.

Некоторые подклассы Optimizer используют дополнительные переменные. Например, Momentum и Adagrad используют переменные для накопления обновлений. Этот метод предоставляет доступ к этим объектам Variable, если они вам необходимы.

Используйте get_slot_names() для получения списка имен слотов, созданных Optimizer.

Аргументы
var Переменная, переданная в minimize() или apply_gradients().
name Строка.
Возвращаемое значение
Слот Variable при его существовании, None в противном случае.

get_slot_names

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

get_slot_names()

Возвращает список имён слотов, созданных Optimizer.

См. get_slot().

Возвращаемое значение
Список строк.

minimize

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

minimize(
    loss, global_step=None, var_list=None, gate_gradients=GATE_OP,
    aggregation_method=None, colocate_gradients_with_ops=False, name=None,
    grad_loss=None
)

Добавляет операции для минимизации loss путём обновления var_list.

Этот метод просто объединяет вызовы compute_gradients() и apply_gradients(). Если нужно обработать градиент перед его применением, вызовите compute_gradients() и apply_gradients() явно вместо использования этой функции.

Аргументы
loss Объект Tensor, содержащий значение, которое необходимо минимизировать.
global_step Необязательный объект Variable для инкремента на единицу после обновления переменных.
var_list Необязательный список или кортеж объектов Variable для обновления, чтобы минимизировать loss. По умолчанию это список переменных, собранных в графе под ключом GraphKeys.TRAINABLE_VARIABLES.
gate_gradients Способ управления вычислением градиентов. Может быть GATE_NONE, GATE_OP, или GATE_GRAPH.
aggregation_method Способ объединения градиентных членов. Допустимые значения определены в классе AggregationMethod.
colocate_gradients_with_ops Если True, пытается разместить градиенты совместно с соответствующей операцией.
name Необязательное имя возвращаемой операции.
grad_loss Необязательно. Объект Tensor, содержащий вычисленный градиент для loss.
Возвращаемое значение
Операция, обновляющая переменные в var_list. Если global_step не None, эта операция также инкрементирует global_step.
Исключения
ValueError Если некоторые переменные не являются объектами Variable.

Жадный режим совместимости

При включенном жадном выполнении loss должна быть функция Python, которая не принимает аргументов и вычисляет значение, которое нужно минимизировать. Минимизация (и вычисление градиента) выполняется относительно элементов var_list если оно не равно None, иначе относительно всех обучаемых переменных, созданных во время выполнения функции loss. gate_gradients, aggregation_method, colocate_gradients_with_ops и grad_loss игнорируются при включенном жадном выполнении.

variables

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

variables()

Список переменных, которые кодируют текущее состояние Optimizer.

Включает переменные слотов и дополнительные глобальные переменные, созданные оптимизатором в текущей графике по умолчанию.

Возвращаемое значение
Список переменных.
Переменные класса
GATE_GRAPH 2
GATE_NONE 0
GATE_OP 1

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/train/AdagradDAOptimizer

Spec-Zone.ru

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