Spec-Zone.ru › TensorFlow 1.15

tf.distribute.ReplicaContext

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

tf.distribute.Strategy API, когда вы находитесь в контексте реплики.

Псевдонимы

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

`tf.contrib.distribute.ReplicaContext`

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

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

tf.compat.v1.distribute.ReplicaContext, `tf.compat.v2.distribute.ReplicaContext`

tf.distribute.ReplicaContext(
    strategy, replica_id_in_sync_group
)

Вы можете использовать tf.distribute.get_replica_context для получения экземпляра ReplicaContext. Это должно быть внутри вашей функции шага репликации, например, в вызове tf.distribute.Strategy.experimental_run_v2.

Атрибуты
devices Устройства, на которых будет выполняться эта реплика, как кортеж строк.
num_replicas_in_sync Возвращает число реплик, по которым агрегируются градиенты.
replica_id_in_sync_group Возвращает идентификатор реплики, которая определяется.

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

strategy Текущий объект tf.distribute.Strategy.

Методы

all_reduce

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

all_reduce(
    reduce_op, value
)

Выполняет все-сведение заданного value Tensor вложенного элемента по репликам.

Если all_reduce вызывается в любой реплике, она должна быть вызвана во всех репликах. Структура вложенных элементов и Tensor формы должны быть идентичны во всех репликах.

Ключевая информация: Порядок коммуникации должен быть одинаковым во всех репликах.

Пример с двумя репликами: Реплика 0 value: {'a': 1, 'b': [40, 1]} Реплика 1 value: {'a': 3, 'b': [ 2, 98]}

Если reduce_op == SUM: Результат (на всех репликах): {'a': 4, 'b': [42, 99]}

Если reduce_op == MEAN: Результат (на всех репликах): {'a': 2, 'b': [21, 49.5]}

Аргументы
reduce_op Тип сведения, экземпляр перечисления tf.distribute.ReduceOp.
value Вложенная структура Tensor для все-сведения. Структура должна быть совместима с tf.nest.
Возвращаемое значение
Вложенная структура Tensor с результирующими value из каждой реплики.

merge_call

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

merge_call(
    merge_fn, args=(), kwargs=None
)

Объединяет аргументы по репликам и запускает merge_fn в кросрепликационном контексте.

Это позволяет обмениваться данными и координировать действия, когда существует несколько вызовов step_fn, вызванных вызовом strategy.experimental_run_v2(step_fn, ...).

См. tf.distribute.Strategy.experimental_run_v2 для объяснения.

Если вы не находитесь внутри распределенного пространства, это эквивалентно:

strategy = tf.distribute.get_strategy()
with cross-replica-context(strategy):
  return merge_fn(strategy, *args, **kwargs)
Аргументы
merge_fn Функция, которая объединяет аргументы из потоков, которые передаются как PerReplica. Она принимает объект tf.distribute.Strategy в качестве первого аргумента.
args Список или кортеж с позиционными аргументами для каждого потока для merge_fn.
kwargs Словарь с ключевыми аргументами для каждого потока для merge_fn.
Возвращаемое значение
Возвращаемое значение merge_fn, за исключением значений PerReplica которые распаковываются.

__enter__

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

__enter__()

__exit__

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

__exit__(
    exception_type, exception_value, traceback
)

© 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/distribute/ReplicaContext

Spec-Zone.ru

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