Spec-Zone.ru › TensorFlow 2.9

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
)

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

Одной из распространённых оптимизаций является разделение операции all-reduce для градиентов на несколько пакетов, чтобы обновления весов могли перекрываться с 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/versions/r2.9/api_docs/python/tf/distribute/experimental/CommunicationOptions

Spec-Zone.ru

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