class_docstr: Object that is responsible for evaluating asynchronous multiple agents.
  
  Args:
      n_steps (int): Number of timesteps used in each evaluation.
      n_episodes (int): Number of episodes used in each evaluation.
      eval_interval (int): Interval of evaluations in steps.
      outdir (str): Path to a directory to save things.
      max_episode_len (int): Maximum length of episodes used in evaluations.
      step_offset (int): Offset of steps used to schedule evaluations.
      evaluation_hooks (Sequence): Sequence of
          pfrl.experiments.evaluation_hooks.EvaluationHook objects. They are
          called after each evaluation.
      save_best_so_far_agent (bool): If set to True, after each evaluation,
          if the score (= mean return of evaluation episodes) exceeds
          the best-so-far score, the current agent is saved.
code: def start_tensorboard_writer(self, outdir, stop_event):
      self.record_tb_stats_queue = mp.Queue()
      self.record_tb_stats_thread = pfrl.utils.StoppableThread(
          target=record_tb_stats_loop,
          args=[outdir, self.record_tb_stats_queue, stop_event],
          stop_event=stop_event,
      )
      self.record_tb_stats_thread.start()
  
imports: import logging
  import multiprocessing
  import os
  import statistics
  import time
  import numpy
  import pfrl
label_desc: Use image node_id 5 for calling the AsyncEvaluator obj's underlying member method code with example usage: obj.start_tensorboard_writer(outdir, stop_event) without return types