class_docstr: Runner for evaluating using a fixed number of episodes rather than steps.
  
  Also restricts data collection to a strict cap,
  following conventions in data-efficient RL research.
class_docstr_tok: ["Runner","for","evaluating","using","a","fixed","number","of","episodes","rather","than","steps",".","Also","restricts","data","collection","to","a","strict","cap",",","following","conventions","in","data-efficient","RL","research","."]
docstr: Runs one iteration of agent/environment interaction.
docstr_tok: ["Runs","one","iteration","of","agent\/environment","interaction","."]
code: def _run_one_iteration(self, iteration):
      """Runs one iteration of agent/environment interaction."""
      statistics = iteration_statistics.IterationStatistics()
      logging.info("Starting iteration %d", iteration)
      (
          num_episodes_train,
          average_reward_train,
          average_steps_per_second,
          norm_score_train,
      ) = self._run_train_phase(statistics)
      (
          num_episodes_eval,
          average_reward_eval,
          norm_score_eval,
      ) = self._run_eval_phase(statistics)
      self._collector_dispatcher.write(
          [
              statistics_instance.StatisticsInstance(
                  "Train/NumEpisodes", num_episodes_train, iteration
              ),
              statistics_instance.StatisticsInstance(
                  "Train/AverageReturns",
                  average_reward_train,
                  iteration,
              ),
              statistics_instance.StatisticsInstance(
                  "Train/AverageStepsPerSecond",
                  average_steps_per_second,
                  iteration,
              ),
              statistics_instance.StatisticsInstance(
                  "Eval/NumEpisodes", num_episodes_eval, iteration
              ),
              statistics_instance.StatisticsInstance(
                  "Eval/AverageReturns", average_reward_eval, iteration
              ),
          ]
      )
      self._save_tensorboard_summaries(
          iteration,
          num_episodes_train,
          average_reward_train,
          norm_score_train,
          num_episodes_eval,
          average_reward_eval,
          norm_score_eval,
          average_steps_per_second,
      )
      return statistics.data_lists
  
imports: import functools
  import os
  import sys
  import time
  from absl import logging
  from dopamine.discrete_domains import atari_lib
  from dopamine.discrete_domains import iteration_statistics
  from dopamine.discrete_domains import run_experiment
  from dopamine.labs.atari_100k import normalization_utils
  from dopamine.metrics import collector_dispatcher
  from dopamine.metrics import statistics_instance
  import gin
  import jax
  import numpy
  import tensorflow
label_desc: Use image node_id 7 for calling the DataEfficientAtariRunner obj's underlying member method code with example usage: obj._run_one_iteration(iteration) and returns: statistics