tf.distribute.ReductionToOneDevice
| Просмотреть исходный код на GitHub |
Реализация CrossDeviceOps, копирующая значения на один узел для вычисления сокращения.
Наследуется от: CrossDeviceOps
tf.distribute.ReductionToOneDevice(
reduce_to_device=None, accumulation_fn=None
)
Эта реализация всегда копирует значения на один узел для их сокращения, а затем транслирует полученные значения к узлам назначения. Она не поддерживает эффективное пакетное выполнение.
Вот как можно использовать ReductionToOneDevice в tf.distribute.MirroredStrategy:
strategy = tf.distribute.MirroredStrategy( cross_device_ops=tf.distribute.ReductionToOneDevice())
| Аргументы | |
|---|---|
reduce_to_device | промежуточный узел для сокращения. Если None, сокращение происходит на первом узле в destinations метода reduce. |
accumulation_fn | функция для накопления. Если None, используется tf.math.add_n. |
Методы
batch_reduce
batch_reduce(
reduce_op, value_destination_pairs, options=None
)
Вычисление сокращения значений для узлов назначения в пакетном режиме.
См. tf.distribute.StrategyExtended.batch_reduce_to. Это может быть вызвано только в контексте меж-реплицирующего выполнения.
| Аргументы | |
|---|---|
reduce_op | tf.distribute.ReduceOp определяющий, как значения должны быть объединены. |
value_destination_pairs | последовательность пар (значение, узлы назначения). См. tf.distribute.CrossDeviceOps.reduce для описаний. |
options | tf.distribute.experimental.CommunicationOptions. См. tf.distribute.experimental.CommunicationOptions для получения подробной информации. |
| Возвращаемое значение | |
|---|---|
Список tf.Tensor или tf.distribute.DistributedValues, по одному на пару в value_destination_pairs. |
| Исключения | |
|---|---|
ValueError | если value_destination_pairs не является итерируемым списком кортежей из tf.distribute.DistributedValues и узлов назначения. |
broadcast
broadcast(
tensor, destinations
)
Трансляция tensor на destinations.
Это можно вызвать только в меж-реплицирующем контексте.
| Аргументы | |
|---|---|
tensor | объект типа tf.Tensor. Передаваемое значение. |
destinations | tf.distribute.DistributedValues, tf.Variable, tf.Tensor или строка узла. Указывает узлы, на которые требуется трансляция. Обратите внимание, что если это tf.Variable, то значение транслируется на узлы этой переменной; этот метод не обновляет переменную. |
| Возвращаемое значение | |
|---|---|
tf.Tensor или tf.distribute.DistributedValues. |
reduce
reduce(
reduce_op, per_replica_value, destinations, options=None
)
Сокращение per_replica_value до destinations.
См. tf.distribute.StrategyExtended.reduce_to. Это может быть вызвано только в меж-реплицирующем контексте.
| Аргументы | |
|---|---|
reduce_op | tf.distribute.ReduceOp определяющий, как значения должны быть объединены. |
per_replica_value | tf.distribute.DistributedValues или объект типа tf.Tensor. |
destinations | tf.distribute.DistributedValues, tf.Variable, tf.Tensor или строка узла. Для выполнения all-reduce передайте одинаковые значения в value и destinations. Обратите внимание, что если это tf.Variable, то значение сокращается до узлов этой переменной, и этот метод не обновляет переменную. |
options | tf.distribute.experimental.CommunicationOptions. См. tf.distribute.experimental.CommunicationOptions для получения подробной информации. |
| Возвращаемое значение | |
|---|---|
tf.Tensor или tf.distribute.DistributedValues. |
| Исключения | |
|---|---|
ValueError | если per_replica_value не может быть преобразован в tf.distribute.DistributedValues или если destinations не является строкой, tf.Variable или tf.distribute.DistributedValues. |
© 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.4/api_docs/python/tf/distribute/ReductionToOneDevice