Spec-Zone.ru › TensorFlow

tf.distribute.experimental.CollectiveHints

Подсказки для коллективных операций, таких как AllReduce.

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

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

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

tf.compat.v1.distribute.experimental.CollectiveHints

tf.distribute.experimental.CollectiveHints(
    bytes_per_pack=0, timeout_seconds=None
)

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

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

Примеры:

  • bytes_per_pack
hints = tf.distribute.experimental.CollectiveHints(
    bytes_per_pack=50 * 1024 * 1024)
grads = tf.distribute.get_replica_context().all_reduce(
    'sum', grads, experimental_hints=hints)
optimizer.apply_gradients(zip(grads, vars),
    experimental_aggregate_gradients=False)
  • timeout_seconds
strategy = tf.distribute.MirroredStrategy()
hints = tf.distribute.experimental.CollectiveHints(
    timeout_seconds=120.0)
try:
  strategy.reduce("sum", v, axis=None, experimental_hints=hints)
except tf.errors.DeadlineExceededError:
  do_something()
Аргументы
bytes_per_pack целое число не меньше нуля. Разбивает коллективные операции на пакеты определенного размера. Если значение равно нулю, значение определяется автоматически. Это применимо только к all-reduce с MultiWorkerMirroredStrategy в настоящее время.
timeout_seconds число с плавающей точкой или None, время ожидания в секундах. Если не None, коллективная операция вызывает tf.errors.DeadlineExceededError, если выполняется дольше, чем это время ожидания. Это может быть полезно при отладке проблем с зависанием. Следует использовать только для отладки, так как это создаёт новую нить для каждой коллективной операции, т.е. накладные расходы в виде timeout_seconds * num_collectives_per_second дополнительных потоков. Это работает только для 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/CollectiveHints

Spec-Zone.ru

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