class_docstr: Runner for Dopamine experiments with fixed replay buffer.
code: def __init__(self, base_dir, create_agent_fn, num_epochs=None):
      super().__init__(base_dir, create_agent_fn)
      if num_epochs is not None:
          try:
              # pylint: disable=protected-access
              gradients_per_epoch = (
                  self._agent._replay.gradient_steps_per_epoch
              )
              # Each intermediate evaluation happens every epoch // 3
              self._training_steps = gradients_per_epoch // 3
              # pylint: enable=protected-access
              self._num_iterations = num_epochs * 3
              logging.info("\t Num epochs: %d", num_epochs)
              logging.info(
                  "\t Training steps: %d", self._training_steps
              )
              logging.info(
                  "\t Num iterations: %d", self._num_iterations
              )
          except AttributeError:
              pass
  
file_path: dopamine/dopamine/labs/offline_rl/jax/run_experiment.py
imports: import sys
  import time
  from absl import logging
  from dopamine.discrete_domains import iteration_statistics
  from dopamine.discrete_domains import run_experiment
  from dopamine.metrics import statistics_instance
  import gin
  import tensorflow
label_desc: Use image node_id 1 to create a new FixedReplayRunner object from inherited base classes: run_experiment with example: obj = FixedReplayRunner(base_dir, create_agent_fn, num_epochs)