From aef2e71ed1f4e2cf4c576b93df8c19c37c90cb94 Mon Sep 17 00:00:00 2001 From: Shangtong Zhang Date: Wed, 11 Apr 2018 08:35:24 -0600 Subject: [PATCH] Update README --- README.md | 3 ++- images/ppo_pixel_atari-180410-235529.png | Bin 0 -> 37559 bytes main.py | 7 ++++--- 3 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 images/ppo_pixel_atari-180410-235529.png diff --git a/README.md b/README.md index 533bac8..71e5119 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Implemented algorithms: * Synchronous Advantage Actor Critic (A2C) * Synchronous N-Step Q-Learning * Deep Deterministic Policy Gradient (DDPG) -* Synchronous Proximal Policy Optimization (PPO) +* (Continuous/Discrete) Synchronous Proximal Policy Optimization (PPO) * Action Conditional Video Prediction Asynchronous algorithms below are removed in this repo but can be found in [the previous release](https://github.com/ShangtongZhang/DeepRL/releases/tag/v0.1) @@ -42,6 +42,7 @@ Asynchronous algorithms below are removed in this repo but can be found in [the ## PPO ![Loading...](https://raw.githubusercontent.com/ShangtongZhang/DeepRL/master/images/ppo_continuous-180408-002056.png) +![Loading...](https://raw.githubusercontent.com/ShangtongZhang/DeepRL/master/images/ppo_pixel_atari-180410-235529.png) ## Action Conditional Video Prediction ![Loading...](https://raw.githubusercontent.com/ShangtongZhang/DeepRL/master/images/ACVP.png) diff --git a/images/ppo_pixel_atari-180410-235529.png b/images/ppo_pixel_atari-180410-235529.png new file mode 100644 index 0000000000000000000000000000000000000000..50f09b93052882c1f9ce49c2a7fede2763b181a3 GIT binary patch literal 37559 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 MLq#E1-Z1e00I;9bs{jB1 literal 0 HcmV?d00001 diff --git a/main.py b/main.py index c1497ee..0d927dd 100644 --- a/main.py +++ b/main.py @@ -338,11 +338,12 @@ def plot(): # 'dqn_pixel_atari-180407-01414', # 'quantile_regression_dqn_pixel_atari-180407-01604', # 'n_step_dqn_pixel_atari-180408-001104', - 'ppo_continuous-180408-002056', - 'ddpg_continuous-180407-234141' + # 'ppo_continuous-180408-002056', + # 'ddpg_continuous-180407-234141' + 'ppo_pixel_atari-180410-235529', ] for name in names: - plotter.plot_results(['to_plot/%s' % (name)]) + plotter.plot_results(['to_plot/%s' % (name)], title='BreakoutNoFrameskip-v4') plt.savefig('images/%s.png' % (name)) plt.close()