Spec-Zone.ru › TensorFlow 1.15

tf.contrib.opt.ModelAverageOptimizer

Оборачивающий оптимизатор, реализующий алгоритм усреднения моделей.

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

tf.contrib.opt.ModelAverageOptimizer(
    opt, num_worker, is_chief, ma_custom_getter, interval_steps=100,
    use_locking=True, name='ModelAverageOptimizer'
)

Это синхронный оптимизатор. Во время обучения каждый рабочий процесс обновит локальные переменные и сохранит свою локальную итерацию, которая начинается с 0 и увеличивается на 1 после каждого обновления локальных переменных. Всякий раз, когда интервал итераций делит локальную итерацию, локальные переменные со всех рабочих процессов усредняются и присваиваются глобальным центральным переменным. Затем локальные переменные присваиваются глобальными центральными переменными.

Аргументы
opt Фактический оптимизатор, который будет использоваться для обновления локальных переменных
num_worker Количество рабочих процессов
is_chief Является ли главный рабочий процесс
ma_custom_getter ModelAverageCustomGetter
interval_steps Целочисленное значение, контролирующее частоту усреднения локальных переменных
use_locking Если True, использовать блокировки для операций обновления
name Строка. Необязательное имя возвращаемой операции

Методы

apply_gradients

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

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

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

В этом методе реализована большая часть имплементации синхронизации, а также оболочка для apply_gradients() из реального оптимизатора. Главный рабочий процесс обновляет глобальные переменные.

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

compute_gradients

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

compute_gradients(
    *args, **kwargs
)

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

Этот метод просто оборачивает compute_gradients() из реального оптимизатора.

Аргументы
*args Аргументы для compute_gradients().
**kwargs Параметры для compute_gradients().
Возвращаемое значение
Список пар (градиент, переменная).

get_init_op

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

get_init_op()

Возвращает операцию.

Этот метод устанавливает все локальные переменные равными глобальным переменным перед началом обучения.

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().

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

make_session_run_hook

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

make_session_run_hook()

Создаёт хук для обработки операций ModelAverage, таких как инициализация.

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

Совместимость с Eager

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

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/r1.15/api_docs/python/tf/contrib/opt/ModelAverageOptimizer

Spec-Zone.ru

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