Spec-Zone.ru › TensorFlow 1.15

tf.tpu.CrossShardOptimizer

Оптимизатор, усредняющий градиенты по фрагментам TPU.

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

Просмотр псевдонимов

Основные псевдонимы

`tf.contrib.tpu.CrossShardOptimizer`

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.tpu.CrossShardOptimizer

tf.tpu.CrossShardOptimizer(
    opt, reduction=losses.Reduction.MEAN, name='CrossShardOptimizer',
    group_assignment=None
)
Аргументы
opt Существующий Optimizer для инкапсуляции.
reduction Редукция, применяемая к потерям фрагмента.
name Необязательный префикс имени для операций, созданных при применении градиентов. По умолчанию "CrossShardOptimizer".
group_assignment Необязательные двумерные списки int32 с формой [num_groups, num_replicas_per_group], описывающие, как применять оптимизатор к подгруппам.
Исключения
ValueError Если редукция не является допустимой редукцией по фрагментам.

Методы

apply_gradients

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

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

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

Вызывает tpu_ops.cross_replica_sum() для суммирования вкладов градиента по репликам, а затем применяет фактический оптимизатор.

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

compute_gradients

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

compute_gradients(
    loss, var_list=None, **kwargs
)

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

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

Аргументы
loss Тензор, содержащий значение для минимизации.
var_list Необязательный список или кортеж tf.Variable для обновления, чтобы минимизировать loss. По умолчанию - список переменных, собранных в графе под ключом GraphKey.TRAINABLE_VARIABLES.
**kwargs Аргументы для compute_gradients().
Возвращаемое значение
Список пар (градиент, переменная).
Исключения
ValueError Если не внутри tpu_shard_context или group_assignment некорректен.

get_name

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

get_name()

get_slot

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

get_slot(
    *args, **kwargs
)

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

Это просто оборачивает get_slot() фактического оптимизатора.

Аргументы
*args Аргументы для get_slot().
**kwargs Аргументы по ключевым словам для get_slot().
Возвращаемое значение
Variable для слота, если он был создан, None в противном случае.

get_slot_names

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

get_slot_names(
    *args, **kwargs
)

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

Это просто оборачивает get_slot_names() фактического оптимизатора.

Аргументы
*args Аргументы для get_slot().
**kwargs Аргументы по ключевым словам для 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 Тензор, содержащий значение для минимизации.
global_step Необязательная переменная, увеличиваемая на единицу после обновления переменных.
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 Необязательно. Тензор, содержащий градиент, вычисленный для loss.
Возвращаемое значение
Операция, обновляющая переменные в var_list. Если global_step не было None, эта операция также увеличивает global_step.
Исключения
ValueError Если некоторые переменные не являются объектами Variable.

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

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

variables

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

variables()

Передача переменных из базового оптимизатора.

Переменные класса

  • 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/tpu/CrossShardOptimizer

Spec-Zone.ru

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