Ejemplo n.º 1
0
 def write_stats(self, category: str, values: Dict[str, StatsSummary],
                 step: int) -> None:
     for val, stats_summary in values.items():
         set_gauge(
             GaugeWriter.sanitize_string(f"{category}.{val}.mean"),
             float(stats_summary.mean),
         )
Ejemplo n.º 2
0
 def _write_summary(self, step: int) -> None:
     """
     Saves training statistics to Tensorboard.
     """
     is_training = "Training." if self.should_still_train else "Not Training."
     stats_summary = self.stats_reporter.get_stats_summaries(
         "Environment/Cumulative Reward"
     )
     if stats_summary.num > 0:
         LOGGER.info(
             " {}: {}: Step: {}. "
             "Time Elapsed: {:0.3f} s "
             "Mean "
             "Reward: {:0.3f}"
             ". Std of Reward: {:0.3f}. {}".format(
                 self.run_id,
                 self.brain_name,
                 step,
                 time.time() - self.training_start_time,
                 stats_summary.mean,
                 stats_summary.std,
                 is_training,
             )
         )
         set_gauge(f"{self.brain_name}.mean_reward", stats_summary.mean)
     else:
         LOGGER.info(
             " {}: {}: Step: {}. No episode was completed since last summary. {}".format(
                 self.run_id, self.brain_name, step, is_training
             )
         )
     self.stats_reporter.write_stats(int(step))
Ejemplo n.º 3
0
 def write_summary(self, global_step: int,
                   delta_train_start: float) -> None:
     """
     Saves training statistics to Tensorboard.
     :param delta_train_start:  Time elapsed since training started.
     :param global_step: The number of steps the simulation has been going for
     """
     if (global_step % self.trainer_parameters["summary_freq"] == 0
             and global_step != 0):
         is_training = ("Training." if self.is_training
                        and self.get_step <= self.get_max_steps else
                        "Not Training.")
         step = min(self.get_step, self.get_max_steps)
         stats_summary = self.stats_reporter.get_stats_summaries(
             "Environment/Cumulative Reward")
         if stats_summary.num > 0:
             LOGGER.info(" {}: {}: Step: {}. "
                         "Time Elapsed: {:0.3f} s "
                         "Mean "
                         "Reward: {:0.3f}"
                         ". Std of Reward: {:0.3f}. {}".format(
                             self.run_id,
                             self.brain_name,
                             step,
                             delta_train_start,
                             stats_summary.mean,
                             stats_summary.std,
                             is_training,
                         ))
             set_gauge(f"{self.brain_name}.mean_reward", stats_summary.mean)
         else:
             LOGGER.info(
                 " {}: {}: Step: {}. No episode was completed since last summary. {}"
                 .format(self.run_id, self.brain_name, step, is_training))
         self.stats_reporter.write_stats(int(step))
Ejemplo n.º 4
0
 def write_summary(self,
                   global_step: int,
                   delta_train_start: float,
                   lesson_num: int = 0) -> None:
     """
     Saves training statistics to Tensorboard.
     :param delta_train_start:  Time elapsed since training started.
     :param lesson_num: Current lesson number in curriculum.
     :param global_step: The number of steps the simulation has been going for
     """
     if (global_step % self.trainer_parameters["summary_freq"] == 0
             and global_step != 0):
         is_training = ("Training." if self.is_training
                        and self.get_step <= self.get_max_steps else
                        "Not Training.")
         step = min(self.get_step, self.get_max_steps)
         if len(self.stats["Environment/Cumulative Reward"]) > 0:
             mean_reward = np.mean(
                 self.stats["Environment/Cumulative Reward"])
             LOGGER.info(
                 " {}: {}: Step: {}. "
                 "Time Elapsed: {:0.3f} s "
                 "Mean "
                 "Reward: {:0.3f}"
                 ". Std of Reward: {:0.3f}. {}".format(
                     self.run_id,
                     self.brain_name,
                     step,
                     delta_train_start,
                     mean_reward,
                     np.std(self.stats["Environment/Cumulative Reward"]),
                     is_training,
                 ))
             set_gauge(f"{self.brain_name}.mean_reward", mean_reward)
         else:
             LOGGER.info(
                 " {}: {}: Step: {}. No episode was completed since last summary. {}"
                 .format(self.run_id, self.brain_name, step, is_training))
         summary = tf.Summary()
         for key in self.stats:
             if len(self.stats[key]) > 0:
                 stat_mean = float(np.mean(self.stats[key]))
                 summary.value.add(tag="{}".format(key),
                                   simple_value=stat_mean)
                 self.stats[key] = []
         summary.value.add(tag="Environment/Lesson",
                           simple_value=lesson_num)
         self.summary_writer.add_summary(summary, step)
         self.summary_writer.flush()
Ejemplo n.º 5
0
def decorated_func(x: int = 0, y: float = 1.0) -> str:
    timers.set_gauge("my_gauge", x + y)
    return f"{x} + {y} = {x + y}"