(self, episode, epsilon, step)
| 688 | self.curr_ep_loss_length = 0 |
| 689 | |
| 690 | def record(self, episode, epsilon, step): |
| 691 | mean_ep_reward = np.round(np.mean(self.ep_rewards[-100:]), 3) |
| 692 | mean_ep_length = np.round(np.mean(self.ep_lengths[-100:]), 3) |
| 693 | mean_ep_loss = np.round(np.mean(self.ep_avg_losses[-100:]), 3) |
| 694 | mean_ep_q = np.round(np.mean(self.ep_avg_qs[-100:]), 3) |
| 695 | self.moving_avg_ep_rewards.append(mean_ep_reward) |
| 696 | self.moving_avg_ep_lengths.append(mean_ep_length) |
| 697 | self.moving_avg_ep_avg_losses.append(mean_ep_loss) |
| 698 | self.moving_avg_ep_avg_qs.append(mean_ep_q) |
| 699 | |
| 700 | last_record_time = self.record_time |
| 701 | self.record_time = time.time() |
| 702 | time_since_last_record = np.round(self.record_time - last_record_time, 3) |
| 703 | |
| 704 | print( |
| 705 | f"Episode {episode} - " |
| 706 | f"Step {step} - " |
| 707 | f"Epsilon {epsilon} - " |
| 708 | f"Mean Reward {mean_ep_reward} - " |
| 709 | f"Mean Length {mean_ep_length} - " |
| 710 | f"Mean Loss {mean_ep_loss} - " |
| 711 | f"Mean Q Value {mean_ep_q} - " |
| 712 | f"Time Delta {time_since_last_record} - " |
| 713 | f"Time {datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S')}" |
| 714 | ) |
| 715 | |
| 716 | with open(self.save_log, "a") as f: |
| 717 | f.write( |
| 718 | f"{episode:8d}{step:8d}{epsilon:10.3f}" |
| 719 | f"{mean_ep_reward:15.3f}{mean_ep_length:15.3f}{mean_ep_loss:15.3f}{mean_ep_q:15.3f}" |
| 720 | f"{time_since_last_record:15.3f}" |
| 721 | f"{datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S'):>20}\n" |
| 722 | ) |
| 723 | |
| 724 | for metric in ["ep_lengths", "ep_avg_losses", "ep_avg_qs", "ep_rewards"]: |
| 725 | plt.clf() |
| 726 | plt.plot(getattr(self, f"moving_avg_{metric}"), label=f"moving_avg_{metric}") |
| 727 | plt.legend() |
| 728 | plt.savefig(getattr(self, f"{metric}_plot")) |
| 729 | |
| 730 | |
| 731 | ###################################################################### |
no outgoing calls
no test coverage detected