tf.distribute.experimental.CollectiveHints
Подсказки для коллективных операций, таких как AllReduce.
tf.distribute.experimental.CollectiveHints(
bytes_per_pack=0
)
Это можно передать в методы, такие как tf.distribute.get_replica_context().all_reduce() для оптимизации производительности коллективных операций. Обратите внимание, что это лишь подсказки, которые могут или не могут изменить фактическое поведение. Некоторые параметры применяются только к определённой стратегии и игнорируются другими.
Одной из распространённых оптимизаций является разделение градиентного all-reduce на несколько пакетов, чтобы обновления весов могли перекрываться с градиентным all-reduce.
Пример:
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)
| Аргументы | |
|---|---|
bytes_per_pack | Целое неотрицательное число. Разбивает коллективные операции на пакеты определенного размера. Если оно равно нулю, значение определяется автоматически. Это применимо только к all-reduce с MultiWorkerMirroredStrategy в настоящее время. |
| Возможные исключения | |
|---|---|
ValueError | При неверных значениях аргументов. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/distribute/experimental/CollectiveHints