class_docstr: Program definition for distributional (MoG) MPO.
class_docstr_tok: ["Program","definition","for","distributional","(","MoG",")","MPO","."]
docstr: The replay storage.
docstr_tok: ["The","replay","storage","."]
code: def replay(self):
      """The replay storage."""
      if self._samples_per_insert is not None:
          # Create enough of an error buffer to give a 10% tolerance in rate.
          samples_per_insert_tolerance = 0.1 * self._samples_per_insert
          error_buffer = (
              self._min_replay_size * samples_per_insert_tolerance
          )
  
          limiter = reverb.rate_limiters.SampleToInsertRatio(
              min_size_to_sample=self._min_replay_size,
              samples_per_insert=self._samples_per_insert,
              error_buffer=error_buffer,
          )
      else:
          limiter = reverb.rate_limiters.MinSize(self._min_replay_size)
      replay_table = reverb.Table(
          name=adders.DEFAULT_PRIORITY_TABLE,
          sampler=reverb.selectors.Uniform(),
          remover=reverb.selectors.Fifo(),
          max_size=self._max_replay_size,
          rate_limiter=limiter,
          signature=adders.NStepTransitionAdder.signature(
              self._environment_spec
          ),
      )
      return [replay_table]
  
imports: from typing import Callable, Dict, Optional
  import acme
  from acme import datasets
  from acme import specs
  from acme.adders import reverb
  from acme.agents.tf import actors
  from acme.agents.tf.mog_mpo import learning
  from acme.tf import networks
  from acme.tf import savers
  from acme.tf import variable_utils
  from acme.utils import counting
  from acme.utils import loggers
  from acme.utils import lp_utils
  import dm_env
  import launchpad
  import reverb
  import sonnet
label_desc: Use image node_id 2 for calling the DistributedMoGMPO obj's underlying member method code with example usage: obj.replay() and returns: list