View source on GitHub
|
Base class for cross-device reduction and broadcasting algorithms.
tf.distribute.CrossDeviceOps()
batch_reducebatch_reduce(
reduce_op, value_destination_pairs
)
Reduce PerReplica objects in a batch.
Reduce each first element in value_destination_pairs to each second
element which indicates the destinations.
This can be faster than multiple individual reduces because we can
fuse several tensors into one or multiple packs before reduction.
reduce_op: An instance of tf.distribute.ReduceOp that indicates how
the per_replica_value will be reduced.value_destination_pairs: a list or a tuple of PerReplica objects
(or tensors with device set if there is one device) and destinations.a list of Mirrored objects.
ValueError: if value_destination_pairs is not an iterable of
tuples of PerReplica objects and destinations.batch_reduce_implementationbatch_reduce_implementation(
reduce_op, value_destination_pairs
)
Implementation of reduce PerReplica objects in a batch.
Overriding this method is useful for subclass implementers.
Reduce each first element in value_destination_pairs to each second
element which indicates the destinations.
reduce_op: An instance of tf.distribute.ReduceOp that indicates how
per_replica_value will be reduced.value_destination_pairs: an iterable of tuples of PerReplica objects
(or tensors with device set if there is one device) and destinations.a list of Mirrored objects.
ValueError: if value_destination_pairs is not an iterable of
tuples of PerReplica objects and destinationsbroadcastbroadcast(
tensor, destinations
)
Broadcast the tensor to destinations.
tensor: the tensor to broadcast.destinations: the broadcast destinations.a Mirrored object.
broadcast_implementationbroadcast_implementation(
tensor, destinations
)
Implementation of broadcast the tensor to destinations.
tensor: the tensor to broadcast.destinations: the broadcast destinations.a Mirrored object.
reducereduce(
reduce_op, per_replica_value, destinations
)
Reduce per_replica_value to destinations.
It runs the reduction operation defined by reduce_op and put the
result on destinations.
reduce_op: An instance of tf.distribute.ReduceOp that indicates how
per_replica_value will be reduced.per_replica_value: a PerReplica object or a tensor with device set.destinations: the reduction destinations.a Mirrored object.
ValueError: if per_replica_value can't be converted to a PerReplica
object or if destinations aren't strings, Variables or DistributedValuesreduce_implementationreduce_implementation(
reduce_op, per_replica_value, destinations
)
The implementation of reduce of per_replica_value to destinations.
Overriding this method is useful for subclass implementers.
It runs the reduction operation defined by reduce_op and put the
result on destinations.
reduce_op: An instance tf.distribute.ReduceOp that indicates of how
per_replica_value will be reduced.per_replica_value: a PerReplica object or a tensor with device set.destinations: the reduction destinations.a Mirrored object.
ValueError: if per_replica_value can't be converted to a PerReplica
object.