Spec-Zone.ru › TensorFlow 1.15

tf.contrib.distribute.MultiWorkerAllReduce

Алгоритмы all-reduce для распределённого TensorFlow.

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

tf.contrib.distribute.MultiWorkerAllReduce(
    worker_devices, num_gpus_per_worker, all_reduce_spec=('pscpu/pscpu', 2, -1),
    num_packs=0, agg_small_grads_max_bytes=0, agg_small_grads_max_group=10
)
Аргументы
worker_devices список строк устройств для рабочих узлов, участвующих в all-reduce.
num_gpus_per_worker количество устройств GPU на рабочем узле.
all_reduce_spec кортеж, именованный кортеж или список кортежей, определяющих алгоритм all-reduce.
  1. Первый элемент кортежа — имя алгоритма all-reduce. Допустимые имена алгоритмов: "nccl", "nccl/xring", "nccl/rechd", "nccl/pscpu", "xring", "pscpu", "psgpu", "pscpu/pscpu". Алгоритмы с "/" являются иерархическими, поэтому выполняются два all-reduce: первый агрегирует тензоры внутри рабочего узла, а второй — между рабочими узлами.
  2. Второй элемент кортежа — количество фрагментов при выполнении all-reduce. Предположим, что его значение равно M. Каждый тензор после упаковки будет разделен на M фрагментов, а затем будет выполнено M параллельных all-reduce, прежде чем они будут окончательно склеены обратно в полный тензор.
  3. Третий элемент — максимальный размер тензоров, к которым будет применён алгоритм, указанный в первом элементе. Например, если all_reduce_spec=[("nccl", 2, 1024), ("pscpu/pscpu", 2, -1)], тензоры размером не более 1024 байт будут использовать 2-фрагментный all-reduce "nccl", а другие тензоры — 2-фрагментный алгоритм "pscpu/pscpu". Третьи элементы должны быть упорядочены по возрастанию в кортежах и заканчиваться -1, что указывает на бесконечность.
num_packs см. AllReduceCrossDeviceOps.
agg_small_grads_max_bytes см. AllReduceCrossDeviceOps.
agg_small_grads_max_group см. AllReduceCrossDeviceOps.

Методы

batch_reduce

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

batch_reduce(
    reduce_op, value_destination_pairs
)

Выполняет уменьшение объектов PerReplica в группе.

Уменьшает каждый первый элемент в value_destination_pairs до каждого второго элемента, который указывает на место назначения.

Аргументы
reduce_op Указывает, как будет выполняться уменьшение per_replica_value. Допустимые значения: tf.distribute.ReduceOp.SUM, tf.distribute.ReduceOp.MEAN.
value_destination_pairs список или кортеж кортежей объектов PerReplica (или тензоров с заданным устройством, если есть одно устройство) и мест назначения.
Возвращает
список объектов Mirrored.
Возможные исключения
ValueError если value_destination_pairs не является списком или кортежем кортежей объектов PerReplica и мест назначения

broadcast

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

broadcast(
    tensor, destinations
)

Распространяет tensor до мест назначения.

Аргументы
tensor тензор для распространения.
destinations места назначения для распространения.
Возвращает
объект Mirrored.

reduce

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

reduce(
    reduce_op, per_replica_value, destinations
)

Уменьшает per_replica_value до destinations.

Выполняет операцию уменьшения, определённую reduce_op, и помещает результат в destinations.

Аргументы
reduce_op Указывает, как будет выполняться уменьшение per_replica_value. Допустимые значения: tf.distribute.ReduceOp.SUM, tf.distribute.ReduceOp.MEAN.
per_replica_value объект PerReplica или тензор с заданным устройством.
destinations места назначения для уменьшения.
Возвращает
объект Mirrored.
Возможные исключения
ValueError если per_replica_value нельзя преобразовать в объект PerReplica.

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

Spec-Zone.ru

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