class_docstr: Object that handles running Dopamine experiments.
  
  This is mostly the same as discrete_domains.Runner, but is written solely for
  JAX/Flax agents.
class_docstr_tok: ["Object","that","handles","running","Dopamine","experiments",".","This","is","mostly","the","same","as","discrete_domains.Runner",",","but","is","written","solely","for","JAX\/Flax","agents","."]
docstr: Save statistics as tensorboard summaries.
  
  Args:
    iteration: int, The current iteration number.
    num_episodes_train: int, number of training episodes run.
    average_reward_train: float, The average training reward.
    num_episodes_eval: int, number of evaluation episodes run.
    average_reward_eval: float, The average evaluation reward.
    average_steps_per_second: float, The average number of steps per second.
docstr_tok: ["Save","statistics","as","tensorboard","summaries",".","Args",":","iteration",":","int",",","The","current","iteration","number",".","num_episodes_train",":","int",",","number","of","training","episodes","run",".","average_reward_train",":","float",",","The","average","training","reward",".","num_episodes_eval",":","int",",","number","of","evaluation","episodes","run",".","average_reward_eval",":","float",",","The","average","evaluation","reward",".","average_steps_per_second",":","float",",","The","average","number","of","steps","per","second","."]
code: def _save_tensorboard_summaries(
      self,
      iteration,
      num_episodes_train,
      average_reward_train,
      num_episodes_eval,
      average_reward_eval,
      average_steps_per_second,
  ):
      """Save statistics as tensorboard summaries.
  
      Args:
        iteration: int, The current iteration number.
        num_episodes_train: int, number of training episodes run.
        average_reward_train: float, The average training reward.
        num_episodes_eval: int, number of evaluation episodes run.
        average_reward_eval: float, The average evaluation reward.
        average_steps_per_second: float, The average number of steps per second.
      """
      metrics = [
          ("Train/NumEpisodes", num_episodes_train),
          ("Train/AverageReturns", average_reward_train),
          ("Train/AverageStepsPerSecond", average_steps_per_second),
          ("Eval/NumEpisodes", num_episodes_eval),
          ("Eval/AverageReturns", average_reward_eval),
      ]
      for name, value in metrics:
          self._summary_writer.scalar(name, value, iteration)
      self._summary_writer.flush()
  
imports: from typing import Optional
  from absl import logging
  from dopamine.discrete_domains import gym_lib
  from dopamine.discrete_domains import iteration_statistics
  from dopamine.discrete_domains import run_experiment
  from dopamine.jax.agents.dqn import dqn_agent
  from dopamine.jax.agents.sac import sac_agent
  from dopamine.labs.sac_from_pixels import deepmind_control_lib
  from dopamine.metrics import collector_dispatcher
  from dopamine.metrics import statistics_instance
  from flax.metrics import tensorboard
  import gin
  from gym import spaces
label_desc: Use image node_id 5 for calling the ContinuousRunner obj's underlying member method code with example usage: obj._save_tensorboard_summaries(iteration, num_episodes_train, average_reward_train, num_episodes_eval, average_reward_eval, average_steps_per_second) without return types