Source code for causal_world.metrics.mean_accumulated_reward_metric

from causal_world.metrics.metric_base import BaseMetric


[docs]class MeanAccumulatedRewardMetric(BaseMetric):
[docs] def __init__(self): """ The MeanAccumulatedRewardMetric to be used to calculate the mean accumlated reward over all episodes processed. """ super(MeanAccumulatedRewardMetric, self).__init__(name='mean_accumulated_reward_rate') self.accumulated_reward = 0 self.total_number_of_episodes = 0 return
[docs] def process_episode(self, episode_obj): """ Processes the episode to calculate the scores out of it. :param episode_obj: (causal_world.loggers.Episode) episode to process and calculate its metric. :return: """ self.total_number_of_episodes += 1 for rew in episode_obj.rewards: self.accumulated_reward += rew
[docs] def get_metric_score(self): """ :return: (float) the metric score calculated so far. """ return self.accumulated_reward / float(self.total_number_of_episodes)
[docs] def reset(self): """ resets the metric calculation of episodes. :return: """ self.accumulated_reward = 0 self.total_number_of_episodes = 0