class_docstr: SaveableObject implementation for QuantileAccumulator.
  
  The bucket boundaries are serialized and deserialized from checkpointing.
code: def __init__(
      self,
      epsilon,
      num_streams,
      num_quantiles,
      name=None,
      max_elements=None,
  ):
      del max_elements  # Unused.
  
      self._eps = epsilon
      self._num_streams = num_streams
      self._num_quantiles = num_quantiles
  
      with ops.name_scope(name, "QuantileAccumulator") as name:
          self._name = name
          self.resource_handle = self._create_resource()
          self._init_op = self._initialize()
          is_initialized_op = self.is_initialized()
      resources.register_resource(
          self.resource_handle, self._init_op, is_initialized_op
      )
      ops.add_to_collection(
          ops.GraphKeys.SAVEABLE_OBJECTS,
          QuantileAccumulatorSaveable(
              self.resource_handle,
              self._init_op,
              self._num_streams,
              self.resource_handle.name,
          ),
      )
  
imports: from tensorflow.python.framework import ops
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_boosted_trees_ops
  from tensorflow.python.ops import resources
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_aggregate_stats
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_bucketize
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_calculate_best_feature_split
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_calculate_best_feature_split_v2
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_calculate_best_gains_per_feature
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_center_bias
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_create_quantile_stream_resource
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_example_debug_outputs
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_make_quantile_summaries
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_make_stats_summary
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_predict
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_quantile_stream_resource_add_summaries
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_quantile_stream_resource_deserialize
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_quantile_stream_resource_flush
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_quantile_stream_resource_get_bucket_boundaries
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_quantile_stream_resource_handle_op
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_sparse_aggregate_stats
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_sparse_calculate_best_feature_split
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_training_predict
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_update_ensemble
  from tensorflow.python.ops.gen_boosted_trees_ops import boosted_trees_update_ensemble_v2
  from tensorflow.python.ops.gen_boosted_trees_ops import is_boosted_trees_quantile_stream_resource_initialized
  from tensorflow.python.training import saver
label_desc: Use image node_id 1 to create a new QuantileAccumulator object  with example: obj = QuantileAccumulator(epsilon, num_streams, num_quantiles, name, max_elements)