class_docstr: Abstract base class for streaming metrics.
  
  Streaming metrics keep track of the last (upto) K values of the metric in a
  Deque buffer of size K. Calling result() will return the average value of the
  items in the buffer.
code: def __init__(
      self,
      name: Text = "StreamingMetric",
      buffer_size: types.Int = 10,
      batch_size: Optional[types.Int] = None,
  ):
      super(StreamingMetric, self).__init__(name)
      self._buffer = NumpyDeque(maxlen=buffer_size, dtype=np.float64)
      self._batch_size = batch_size
      self.reset()
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import abc
  from typing import Any, Iterable, Optional, Text
  import gin
  import numpy
  import six
  from tf_agents.metrics import py_metric
  from tf_agents.trajectories import trajectory
  from tf_agents.typing import types
  from tf_agents.utils import nest_utils
  from tf_agents.utils import numpy_storage
label_desc: Use image node_id 1 to create a new StreamingMetric object from inherited base classes: py_metric with example: obj = StreamingMetric(name, buffer_size, batch_size)