code: def create_runner_recycled(
      base_dir,
      schedule="continuous_train_and_eval",
      max_episode_eval=False,
  ):
      """Creates an experiment Runner.
  
      Args:
        base_dir: str, base directory for hosting all subdirectories.
        schedule: string, which type of Runner to use.
        max_episode_eval: Whether to use `MaxEpisodeEvalRunner` or not.
  
      Returns:
        runner: A `Runner` like object.
  
      Raises:
        ValueError: When an unknown schedule is encountered.
      """
      assert base_dir is not None
      if schedule == "continuous_train_and_eval":
          if max_episode_eval:
              runner_fn = eval_run_experiment.MaxEpisodeEvalRunner
              logging.info("Using MaxEpisodeEvalRunner for evaluation.")
              return runner_fn(base_dir, create_agent_recycled)
          else:
              return run_experiment.Runner(
                  base_dir, create_agent_recycled
              )
      # Continuously runs training until max num_iterations is hit.
      elif schedule == "continuous_train":
          return run_experiment.TrainRunner(
              base_dir, create_agent_recycled
          )
      else:
          raise ValueError("Unknown schedule: {}".format(schedule))
  
file_path: dopamine/dopamine/labs/redo/train.py
imports: from absl import app
  from absl import flags
  from absl import logging
  from dopamine.discrete_domains import run_experiment
  from dopamine.labs.atari_100k import eval_run_experiment
  from dopamine.labs.redo import recycled_atari100k_rainbow_agent
  from dopamine.labs.redo import recycled_dqn_agents
  from dopamine.labs.redo import recycled_rainbow_agent
  import gin
  import tensorflow
label_desc: Use image node_id 2 for calling a global function with example usage: create_runner_recycled(base_dir, schedule, max_episode_eval) and returns: runner_fn, run_experiment, run_experiment