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