Spec-Zone.ru › TensorFlow 2.9

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/versions/r2.9/api_docs/python/tf/distribute/experimental/CollectiveHints

Spec-Zone.ru

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