class_docstr: All-reduce cross device ops using collective ops.
  
  In the between-graph replicated training, it will still do all-reduces across
  all workers and then put results on the right destinations.
class_docstr_tok: ["All-reduce","cross","device","ops","using","collective","ops",".","In","the","between-graph","replicated","training",",","it","will","still","do","all-reduces","across","all","workers","and","then","put","results","on","the","right","destinations","."]
docstr: All reduce algorithm in a batch.
code: def _batch_all_reduce(self, reduce_op, per_replica_values):
      """All reduce algorithm in a batch."""
      (
          dense_values,
          dense_indices,
          sparse_values,
          sparse_indices,
      ) = cross_device_utils.split_by_sparsity(per_replica_values)
      if dense_values:
          dense_results = self._do_batch_all_reduce_dense(
              reduce_op, dense_values
          )
      else:
          dense_results = []
      if sparse_values:
          sparse_results = self._do_batch_all_reduce_sparse(
              reduce_op, sparse_values
          )
      else:
          sparse_results = []
      return cross_device_utils.stitch_values(
          (
              (dense_results, dense_indices),
              (sparse_results, sparse_indices),
          )
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  import enum
  import six
  from tensorflow.python.client import device_lib
  from tensorflow.python.distribute import cross_device_utils
  from tensorflow.python.distribute import device_util
  from tensorflow.python.distribute import reduce_util
  from tensorflow.python.distribute import values
  from tensorflow.python.eager import context
  from tensorflow.python.framework import kernels
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import resource_variable_ops
  from tensorflow.python.platform import tf_logging
  from tensorflow.python.util.tf_export import tf_export
  from tensorflow.tools.docs import doc_controls
  import tensorflow
  from tensorflow.python.distribute.cross_device_ops import CollectiveAllReduce
  import tensorflow.python.distribute.cross_device_ops
  from byteps.tensorflow.ops import broadcast, _push_pull
  from byteps.tensorflow import local_rank, size
label_desc: Use image node_id 6 for calling the MyCollectiveAllReduce obj's underlying member method code with example usage: obj._batch_all_reduce(reduce_op, per_replica_values) and returns: cross_device_utils