Spec-Zone.ru › TensorFlow

tf.distribute.experimental.CommunicationOptions

Параметры для межсетевых коммуникаций, таких как All-reduce.

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

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

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

tf.compat.v1.distribute.experimental.CommunicationOptions

tf.distribute.experimental.CommunicationOptions(
    bytes_per_pack=0,
    timeout_seconds=None,
    implementation=tf.distribute.experimental.CollectiveCommunication.AUTO
)

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

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

Это можно передать в методы, такие как tf.distribute.get_replica_context().all_reduce(), для оптимизации производительности коллективных операций. Обратите внимание, что это только подсказки, которые могут или не могут изменить фактическое поведение. Некоторые параметры применимы только к определённым стратегиям и игнорируются другими.

Одной из распространённых оптимизаций является разделение всеобщего сокращения градиентов на несколько пакетов, чтобы обновления весов могли перекрываться с всеобщим сокращением градиентов.

Примеры:

options = tf.distribute.experimental.CommunicationOptions(
    bytes_per_pack=50 * 1024 * 1024,
    timeout_seconds=120.0,
    implementation=tf.distribute.experimental.CommunicationImplementation.NCCL
)
grads = tf.distribute.get_replica_context().all_reduce(
    'sum', grads, options=options)
optimizer.apply_gradients(zip(grads, vars),
    experimental_aggregate_gradients=False)
Аргументы
bytes_per_pack целое число не меньше нуля. Разбивает коллективные операции на пакеты определённого размера. Если оно равно нулю, значение определяется автоматически. Эта подсказка учитывается всеми многореплицированными стратегиями, за исключением TPUStrategy.
timeout_seconds число с плавающей точкой или None, время ожидания в секундах. Если не None, коллектив вызывает tf.errors.DeadlineExceededError, если выполнение занимает больше этого времени ожидания. Ноль отключает таймаут. Это может быть полезно при отладке проблем зависания. Это следует использовать только для отладки, так как это создаёт новую нить для каждой коллективной операции, т.е. накладные расходы в виде timeout_seconds * num_collectives_per_second дополнительных нитей. Это работает только для tf.distribute.experimental.MultiWorkerMirroredStrategy.
implementation tf.distribute.experimental.CommunicationImplementation. Это подсказка о предпочтительной реализации коммуникации. Возможные значения включают в себя AUTO, RING и NCCL. NCCL, как правило, более производителен для GPU, но не работает для CPU. Это работает только для tf.distribute.experimental.MultiWorkerMirroredStrategy.
Исключения
ValueError При неверном значении аргументов.

© 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/experimental/CommunicationOptions

Spec-Zone.ru

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