def evaluate_st(num_episodes=1000): aggregate_stats = control.evaluate_control( do_st_control, num_episodes=num_episodes, state_function=prediction.HighwayState.from_sumo, verbose=True) aggregate_stats.print_stats()
def evaluate_st_and_dump_crash(num_episodes=1000): aggregate_stats = control.evaluate_control( do_st_control, num_episodes, state_function=prediction.HighwayState.from_sumo, crash_callback=plot_crash, verbose=True, save_state_on_crash=True) aggregate_stats.print_stats()
def evaluate(self, num_episodes): self._setup() output = control.evaluate_control( control_function=self.do_control, state_function=prediction.HighwayState.from_sumo, crash_callback=None, num_episodes=num_episodes, end_episode_callback=self.end_episode_callback, verbose=True) output.print_stats() self._cleanup()
def evaluate(model_name, num_iterations): dqn = DQN.load(model_name) control_function = partial(do_dqn_control, dqn=dqn, epsilon=0.0) reward_function = get_reward_function() evaluation_stats = control.evaluate_control( control_function=control_function, state_function=prediction.HighwayState.from_sumo, custom_stats_function=partial(rl.get_rl_custom_episode_stats, reward_function=reward_function), max_episode_length=Settings.EVALUATION_EPISODE_LENGTH, num_episodes=num_iterations, wait_before_start=20) evaluation_stats.print_stats()
def evaluate_combined(self, num_episodes): self._setup() output = control.evaluate_control( control_function=self.do_combined_control, state_function=prediction.HighwayState.from_sumo, crash_callback=None, end_episode_callback=self.end_episode_callback, num_episodes=num_episodes, custom_stats_function=self.combined_stats_callback, verbose=True) self._cleanup() output.print_stats() self.plot_st_proportion()
def evaluate_q_model_and_log_metrics(dqn, iteration, writer, reward_function): sumo.change_step_size(Settings.EVALUATION_TICK_LENGTH) control_function = partial(do_dqn_control, dqn=dqn, epsilon=0.0) evaluation_stats = control.evaluate_control( control_function=control_function, state_function=prediction.HighwayState.from_sumo, custom_stats_function=partial(rl.get_rl_custom_episode_stats, reward_function=reward_function), max_episode_length=Settings.EVALUATION_EPISODE_LENGTH, num_episodes=Settings.NUM_EVALUATION_EPISODES, wait_before_start=20) metrics = evaluation_stats.get_stat_averages() for metric in metrics: writer.add_scalar(metric, metrics[metric], iteration) logging.info(metrics) sumo.change_step_size(Settings.TRAINING_TICK_LENGTH)
def evaluate_q_model_and_log_metrics(Q, iteration, writer, visits, reward_function=slotted_reward): sumo.change_step_size(control.Settings.EVALUATION_TICK_LENGTH) control_function = partial(get_control, Q=Q, visits=visits, epsilon=0.0) evaluation_stats = control.evaluate_control( control_function=control_function, state_function=get_state_tuple, custom_stats_function=partial(get_rl_custom_episode_stats, reward_function=reward_function), max_episode_length=control.Settings.EVALUATION_EPISODE_LENGTH, num_episodes=control.Settings.NUM_EVALUATION_EPISODES, wait_before_start=20) metrics = evaluation_stats.get_stat_averages() metrics["unvisited_states"] = visits.size - np.count_nonzero(visits) for metric in metrics: writer.add_scalar(metric, metrics[metric], iteration) logging.info(metrics) sumo.change_step_size(control.Settings.TRAINING_TICK_LENGTH)