Spec-Zone.ru › TensorFlow

tf.distribute.HierarchicalCopyAllReduce

Иерархическая реализация all-reduce с копированием для CrossDeviceOps.

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

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

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

Подробнее см. в руководстве по миграции.

tf.compat.v1.distribute.HierarchicalCopyAllReduce

tf.distribute.HierarchicalCopyAllReduce(
    num_packs=1
)

Используется в блокнотах

Используется в руководстве
  • Распределенное обучение с TensorFlow

Данные сводятся к одному GPU по ребрам некоторой иерархии, а затем передаются обратно каждому GPU по тому же пути. Для пакетного API тензоры будут переупакованы или агрегированы для более эффективной передачи между устройствами.

Это алгоритм редукции, созданный для Nvidia DGX-1; он предполагает, что GPU соединены так же, как в системе DGX-1. Если соединения между вашими GPU устроены иначе, этот алгоритм, вероятно, будет работать медленнее, чем tf.distribute.ReductionToOneDevice.

Для редукций, не являющихся all-reduce, используется tf.distribute.ReductionToOneDevice.

Пример использования HierarchicalCopyAllReduce в tf.distribute.MirroredStrategy:

strategy = tf.distribute.MirroredStrategy(
  cross_device_ops=tf.distribute.HierarchicalCopyAllReduce())
Аргументы
num_packs неотрицательное целое число. Количество блоков, на которые нужно разделить значения. Если значение равно нулю, упаковка не выполняется.
Вызывает исключение
ValueError, если num_packs отрицателен.

Методы

batch_reduce

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

batch_reduce(
    reduce_op, value_destination_pairs, options=None
)

Выполняет пакетную редукцию значений до целевых объектов.

См. tf.distribute.StrategyExtended.batch_reduce_to. Этот метод можно вызывать только в контексте между репликами.

Аргументы
reduce_op объект tf.distribute.ReduceOp, указывающий способ объединения значений.
value_destination_pairs последовательность пар (значение, целевые объекты). Описание см. в разделе tf.distribute.CrossDeviceOps.reduce.
options объект tf.distribute.experimental.CommunicationOptions. Подробности см. в разделе tf.distribute.experimental.CommunicationOptions.
Возвращает
Список объектов tf.Tensor или tf.distribute.DistributedValues — по одному на каждую пару в value_destination_pairs.
Вызывает исключение
ValueError если value_destination_pairs не является итерируемым объектом, содержащим кортежи из tf.distribute.DistributedValues и целевых объектов.

broadcast

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

broadcast(
    tensor, destinations
)

Распространяет tensor на destinations.

Этот метод можно вызывать только в контексте между репликами.

Аргументы
tensor объект типа tf.Tensor. Значение, которое нужно распространить.
destinations объект tf.distribute.DistributedValues, объект tf.Variable, объект типа tf.Tensor или строка с именем устройства. Определяет устройства, на которые нужно распространить значение. Если передан объект tf.Variable, значение распространяется на устройства этой переменной; данный метод не обновляет переменную.
Возвращает
Объект tf.Tensor или tf.distribute.DistributedValues.

reduce

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

reduce(
    reduce_op, per_replica_value, destinations, options=None
)

Выполняет редукцию per_replica_value до destinations.

См. tf.distribute.StrategyExtended.reduce_to. Этот метод можно вызывать только в контексте между репликами.

Аргументы
reduce_op объект tf.distribute.ReduceOp, указывающий способ объединения значений.
per_replica_value объект tf.distribute.DistributedValues или объект типа tf.Tensor.
destinations объект tf.distribute.DistributedValues, объект tf.Variable, объект типа tf.Tensor или строка с именем устройства. Определяет устройства, до которых нужно выполнить редукцию. Чтобы выполнить all-reduce, передайте одинаковые значения для value и destinations. Если передан объект tf.Variable, редукция выполняется до устройств этой переменной; данный метод не обновляет переменную.
options объект tf.distribute.experimental.CommunicationOptions. Подробности см. в разделе tf.distribute.experimental.CommunicationOptions.
Возвращает
Объект tf.Tensor или tf.distribute.DistributedValues.
Вызывает исключение
ValueError если per_replica_value нельзя преобразовать в объект tf.distribute.DistributedValues или если destinations не является строкой, объектом tf.Variable или tf.distribute.DistributedValues.

© 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/api_docs/python/tf/distribute/HierarchicalCopyAllReduce

Spec-Zone.ru

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