tf.distribute.CrossDeviceOps
Базовый класс для алгоритмов кросс-устройства для редукции и широковещательной передачи.
tf.distribute.CrossDeviceOps()
Основное назначение этого класса — передача в tf.distribute.MirroredStrategy для выбора среди различных реализаций межпроцессорного взаимодействия. Предпочтительнее использовать методы tf.distribute.Strategy, а не методы этого класса.
Реализации:
tf.distribute.ReductionToOneDevicetf.distribute.NcclAllReducetf.distribute.HierarchicalCopyAllReduce
Методы
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 и назначений. |
batch_reduce_implementation
batch_reduce_implementation(
reduce_op, value_destination_pairs, options
)
Реализация batch_reduce.
Переопределение этого метода полезно для разработчиков подклассов.
| Аргументы | |
|---|---|
reduce_op | операция tf.distribute.ReduceOp, определяющая, как следует комбинировать значения. |
value_destination_pairs | последовательность пар (значение, назначения). См. 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. |
broadcast_implementation
broadcast_implementation(
tensor, destinations
)
Реализация broadcast.
| Аргументы | |
|---|---|
tensor | объект, подобный tf.Tensor. Передаваемое значение. |
destinations | tf.distribute.DistributedValues, tf.Variable, объект, подобный tf.Tensor, или строка устройства. Определяет устройства для широковещательной рассылки. destinations. Обратите внимание, что если это 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. |
reduce_implementation
reduce_implementation(
reduce_op, per_replica_value, destinations, options
)
Реализация reduce.
Переопределение этого метода полезно для реализаторов подклассов.
| Аргументы | |
|---|---|
reduce_op | a tf.distribute.ReduceOp, определяющий, как следует комбинировать значения. |
per_replica_value | a tf.distribute.DistributedValues, или объект типа tf.Tensor. |
destinations | a tf.distribute.DistributedValues, a tf.Variable, a tf.Tensor подобный объект или строка устройства. Она определяет устройства, к которым следует свести значения. Для выполнения all-reduce передайте одинаковое значение в value и destinations. Обратите внимание, что если это tf.Variable, значение сводится к устройствам этой переменной; этот метод не обновляет переменную. |
options | a tf.distribute.experimental.CommunicationOptions. Подробности см. в tf.distribute.experimental.CommunicationOptions. |
| Возвращаемое значение | |
|---|---|
A tf.Tensor или tf.distribute.DistributedValues. |
| Исключения | |
|---|---|
ValueError | если per_replica_value невозможно преобразовать в tf.distribute.DistributedValues, или если destinations не является строкой, tf.Variable или tf.distribute.DistributedValues. |
© 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/CrossDeviceOps