From f4dcc8ce93055abca257aff810e3bb79a3c5988c Mon Sep 17 00:00:00 2001 From: Ruoyu Gao Date: Mon, 6 Feb 2023 15:29:34 -0500 Subject: [PATCH 1/5] add acrobot env and dqn config --- .../acrobot/config/__init__.py | 1 + .../acrobot/config/acrobot_dqn_config.py | 58 ++++++++++ .../classic_control/acrobot/envs/__init__.py | 1 + .../acrobot/envs/acrobot_env.py | 100 ++++++++++++++++++ .../acrobot/envs/test_acrobot_env.py | 37 +++++++ 5 files changed, 197 insertions(+) create mode 100644 dizoo/classic_control/acrobot/config/__init__.py create mode 100644 dizoo/classic_control/acrobot/config/acrobot_dqn_config.py create mode 100644 dizoo/classic_control/acrobot/envs/__init__.py create mode 100644 dizoo/classic_control/acrobot/envs/acrobot_env.py create mode 100644 dizoo/classic_control/acrobot/envs/test_acrobot_env.py diff --git a/dizoo/classic_control/acrobot/config/__init__.py b/dizoo/classic_control/acrobot/config/__init__.py new file mode 100644 index 0000000000..2079c398a8 --- /dev/null +++ b/dizoo/classic_control/acrobot/config/__init__.py @@ -0,0 +1 @@ +from .acrobot_dqn_config import acrobot_dqn_config, acrobot_dqn_create_config \ No newline at end of file diff --git a/dizoo/classic_control/acrobot/config/acrobot_dqn_config.py b/dizoo/classic_control/acrobot/config/acrobot_dqn_config.py new file mode 100644 index 0000000000..bd8c8ed918 --- /dev/null +++ b/dizoo/classic_control/acrobot/config/acrobot_dqn_config.py @@ -0,0 +1,58 @@ +from easydict import EasyDict + +acrobot_dqn_config = dict( + exp_name='acrobot_dqn_seed0', + env=dict( + collector_env_num=8, + evaluator_env_num=8, + n_evaluator_episode=8, + stop_value=-60, + env_id='Acrobot-v1', + replay_path='acrobot_dqn_seed0/video', + ), + policy=dict( + cuda=True, + model=dict( + obs_shape=6, + action_shape=3, + encoder_hidden_size_list=[256, 256], + dueling=True, + ), + nstep=3, + discount_factor=0.99, + learn=dict( + update_per_collect=10, + batch_size=128, + learning_rate=0.0001, + target_update_freq=250, + ), + collect=dict(n_sample=96, ), + eval=dict(evaluator=dict(eval_freq=2000, )), + other=dict( + eps=dict( + type='exp', + start=1., + end=0.05, + decay=250000, + ), + replay_buffer=dict(replay_buffer_size=100000, ), + ), + ), +) +acrobot_dqn_config = EasyDict(acrobot_dqn_config) +main_config = acrobot_dqn_config +acrobot_dqn_create_config = dict( + env = dict( + type = 'acrobot', + import_names = ['dizoo.classic_control.acrobot.envs.acrobot_env'] + ), + env_manager=dict(type='subprocess'), + policy=dict(type='dqn'), + replay_buffer=dict(type='deque', import_names=['ding.data.buffer.deque_buffer_wrapper']), +) +acrobot_dqn_create_config = EasyDict(acrobot_dqn_create_config) +create_config = acrobot_dqn_create_config + +if __name__ == "__main__": + from ding.entry import serial_pipeline + serial_pipeline((main_config, create_config), seed=0) diff --git a/dizoo/classic_control/acrobot/envs/__init__.py b/dizoo/classic_control/acrobot/envs/__init__.py new file mode 100644 index 0000000000..c586e7a5f7 --- /dev/null +++ b/dizoo/classic_control/acrobot/envs/__init__.py @@ -0,0 +1 @@ +from .acrobot_env import AcroBotEnv \ No newline at end of file diff --git a/dizoo/classic_control/acrobot/envs/acrobot_env.py b/dizoo/classic_control/acrobot/envs/acrobot_env.py new file mode 100644 index 0000000000..8a365583a1 --- /dev/null +++ b/dizoo/classic_control/acrobot/envs/acrobot_env.py @@ -0,0 +1,100 @@ +from typing import Any, List, Union, Optional +import time +import gym +import copy +import numpy as np +from easydict import EasyDict +from ding.envs import BaseEnv, BaseEnvTimestep +from ding.torch_utils import to_ndarray, to_list +from ding.utils import ENV_REGISTRY +from ding.envs import ObsPlusPrevActRewWrapper + + +@ENV_REGISTRY.register('acrobot') +class AcroBotEnv(BaseEnv): + + def __init__(self, cfg: dict = {}) -> None: + self._cfg = cfg + self._init_flag = False + self._replay_path = None + self._observation_space = gym.spaces.Box( + low=np.array([-1.0, -1.0, -1.0, -1.0, -12.57, -28.27]), + high=np.array([1.0, 1.0, 1.0, 1.0, 12.57, 28.27]), + shape=(6, ), + dtype=np.float32 + ) + self._action_space = gym.spaces.Discrete(3) + self._action_space.seed(0) # default seed + self._reward_space = gym.spaces.Box(low=-1.0, high=0.0, shape=(1, ), dtype=np.float32) + + def reset(self) -> np.ndarray: + if not self._init_flag: + self._env = gym.make('Acrobot-v1') + if self._replay_path is not None: + self._env = gym.wrappers.RecordVideo( + self._env, + video_folder=self._replay_path, + episode_trigger=lambda episode_id: True, + name_prefix='rl-video-{}'.format(id(self)) + ) + if hasattr(self._cfg, 'obs_plus_prev_action_reward') and self._cfg.obs_plus_prev_action_reward: + self._env = ObsPlusPrevActRewWrapper(self._env) + self._init_flag = True + if hasattr(self, '_seed') and hasattr(self, '_dynamic_seed') and self._dynamic_seed: + np_seed = 100 * np.random.randint(1, 1000) + self._env.seed(self._seed + np_seed) + self._action_space.seed(self._seed + np_seed) + elif hasattr(self, '_seed'): + self._env.seed(self._seed) + self._action_space.seed(self._seed) + self._observation_space = self._env.observation_space + self._eval_episode_return = 0 + obs = self._env.reset() + obs = to_ndarray(obs) + return obs + + def close(self) -> None: + if self._init_flag: + self._env.close() + self._init_flag = False + + def seed(self, seed: int, dynamic_seed: bool = True) -> None: + self._seed = seed + self._dynamic_seed = dynamic_seed + np.random.seed(self._seed) + + def step(self, action: Union[int, np.ndarray]) -> BaseEnvTimestep: + if isinstance(action, np.ndarray) and action.shape == (1, ): + action = action.squeeze() # 0-dim array + obs, rew, done, info = self._env.step(action) + self._eval_episode_return += rew + if done: + info['eval_episode_return'] = self._eval_episode_return + obs = to_ndarray(obs) + rew = to_ndarray([rew]).astype(np.float32) # wrapped to be transfered to a array with shape (1,) + return BaseEnvTimestep(obs, rew, done, info) + + def enable_save_replay(self, replay_path: Optional[str] = None) -> None: + if replay_path is None: + replay_path = './video' + self._replay_path = replay_path + + def random_action(self) -> np.ndarray: + random_action = self.action_space.sample() + random_action = to_ndarray([random_action], dtype=np.int64) + return random_action + + @property + def observation_space(self) -> gym.spaces.Space: + return self._observation_space + + @property + def action_space(self) -> gym.spaces.Space: + return self._action_space + + @property + def reward_space(self) -> gym.spaces.Space: + return self._reward_space + + def __repr__(self) -> str: + return "DI-engine Acrobot Env" diff --git a/dizoo/classic_control/acrobot/envs/test_acrobot_env.py b/dizoo/classic_control/acrobot/envs/test_acrobot_env.py new file mode 100644 index 0000000000..a018f06489 --- /dev/null +++ b/dizoo/classic_control/acrobot/envs/test_acrobot_env.py @@ -0,0 +1,37 @@ +import pytest +import numpy as np +from dizoo.classic_control.acrobot.envs import AcroBotEnv + +@pytest.mark.envtest +class TestAcrobotEnv: + + def test_naive(self): + env = AcroBotEnv({}) + env.seed(314, dynamic_seed=False) + assert env._seed == 314 + obs = env.reset() + assert obs.shape == (6, ) + for _ in range(5): + env.reset() + np.random.seed(314) + print('=' * 60) + for i in range(10): + # Both ``env.random_action()``, and utilizing ``np.random`` as well as action space, + # can generate legal random action. + if i < 5: + random_action = np.array([env.action_space.sample()]) + else: + random_action = env.random_action() + timestep = env.step(random_action) + print(timestep) + assert isinstance(timestep.obs, np.ndarray) + assert isinstance(timestep.done, bool) + assert timestep.obs.shape == (6, ) + assert timestep.reward.shape == (1, ) + assert timestep.reward >= env.reward_space.low + assert timestep.reward <= env.reward_space.high + print(env.observation_space, env.action_space, env.reward_space) + env.close() + + + From e6abd4ab23aad2d396d96f202f7f075e0b44e51e Mon Sep 17 00:00:00 2001 From: Ruoyu Gao Date: Mon, 6 Feb 2023 23:52:43 -0500 Subject: [PATCH 2/5] remove useless part and update readme --- README.md | 1 + dizoo/classic_control/acrobot/__init__.py | 0 dizoo/classic_control/acrobot/envs/acrobot_env.py | 2 -- dizoo/classic_control/acrobot/envs/test_acrobot_env.py | 2 -- 4 files changed, 1 insertion(+), 4 deletions(-) create mode 100644 dizoo/classic_control/acrobot/__init__.py diff --git a/README.md b/README.md index 3601d9e77c..6db73c1775 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,7 @@ P.S: The `.py` file in `Runnable Demo` can be found in `dizoo` | 30 |[evogym](https://github.com/EvolutionGym/evogym) | ![continuous](https://img.shields.io/badge/-continous-green) | ![original](./dizoo/evogym/evogym.gif) | [dizoo link](https://github.com/opendilab/DI-engine/tree/main/dizoo/evogym/envs)
[env tutorial](https://di-engine-docs.readthedocs.io/en/latest/13_envs/evogym.html)
环境指南 | | 31 |[gym-pybullet-drones](https://github.com/utiasDSL/gym-pybullet-drones) | ![continuous](https://img.shields.io/badge/-continous-green) | ![original](./dizoo/gym-pybullet-drones/gym-pybullet-drones.gif) | [dizoo link](https://github.com/opendilab/DI-engine/tree/main/dizoo/gym_pybullet_drones/envs)
环境指南 | | 32 |[beergame](https://github.com/OptMLGroup/DeepBeerInventory-RL) | ![discrete](https://img.shields.io/badge/-discrete-brightgreen) | ![original](./dizoo/beergame/beergame.png) | [dizoo link](https://github.com/opendilab/DI-engine/tree/main/dizoo/beergame/envs)
环境指南 | +| 32 |[classic_control/acrobot](https://github.com/openai/gym/tree/master/gym/envs/classic_control) | ![discrete](https://img.shields.io/badge/-discrete-brightgreen) | ![original](./dizoo/classic_control/acrobot/acrobot.gif) | [dizoo link](https://github.com/opendilab/DI-engine/tree/main/dizoo/classic_control/acrobot/envs)
环境指南 | ![discrete](https://img.shields.io/badge/-discrete-brightgreen) means discrete action space diff --git a/dizoo/classic_control/acrobot/__init__.py b/dizoo/classic_control/acrobot/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dizoo/classic_control/acrobot/envs/acrobot_env.py b/dizoo/classic_control/acrobot/envs/acrobot_env.py index 8a365583a1..3c26323315 100644 --- a/dizoo/classic_control/acrobot/envs/acrobot_env.py +++ b/dizoo/classic_control/acrobot/envs/acrobot_env.py @@ -37,8 +37,6 @@ def reset(self) -> np.ndarray: episode_trigger=lambda episode_id: True, name_prefix='rl-video-{}'.format(id(self)) ) - if hasattr(self._cfg, 'obs_plus_prev_action_reward') and self._cfg.obs_plus_prev_action_reward: - self._env = ObsPlusPrevActRewWrapper(self._env) self._init_flag = True if hasattr(self, '_seed') and hasattr(self, '_dynamic_seed') and self._dynamic_seed: np_seed = 100 * np.random.randint(1, 1000) diff --git a/dizoo/classic_control/acrobot/envs/test_acrobot_env.py b/dizoo/classic_control/acrobot/envs/test_acrobot_env.py index a018f06489..0dd05b7068 100644 --- a/dizoo/classic_control/acrobot/envs/test_acrobot_env.py +++ b/dizoo/classic_control/acrobot/envs/test_acrobot_env.py @@ -33,5 +33,3 @@ def test_naive(self): print(env.observation_space, env.action_space, env.reward_space) env.close() - - From f2e9ae669c874350dad53aef5e2bc6eb88e3e71f Mon Sep 17 00:00:00 2001 From: Aron751 <694644246@qq.com> Date: Tue, 7 Feb 2023 00:26:38 -0500 Subject: [PATCH 3/5] provide missed acrobot gif --- dizoo/classic_control/acrobot/acrobot.gif | Bin 0 -> 104904 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 dizoo/classic_control/acrobot/acrobot.gif diff --git a/dizoo/classic_control/acrobot/acrobot.gif b/dizoo/classic_control/acrobot/acrobot.gif new file mode 100644 index 0000000000000000000000000000000000000000..3eef302afe204179a9b9ba712f4e838559b51326 GIT binary patch literal 104904 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 literal 0 HcmV?d00001 From ccd4eecc748f3e179b90526b24675ac5be76e20e Mon Sep 17 00:00:00 2001 From: Ruoyu Gao Date: Tue, 7 Feb 2023 00:29:21 -0500 Subject: [PATCH 4/5] fix wrong number in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6db73c1775..127b15745c 100644 --- a/README.md +++ b/README.md @@ -282,7 +282,7 @@ P.S: The `.py` file in `Runnable Demo` can be found in `dizoo` | 30 |[evogym](https://github.com/EvolutionGym/evogym) | ![continuous](https://img.shields.io/badge/-continous-green) | ![original](./dizoo/evogym/evogym.gif) | [dizoo link](https://github.com/opendilab/DI-engine/tree/main/dizoo/evogym/envs)
[env tutorial](https://di-engine-docs.readthedocs.io/en/latest/13_envs/evogym.html)
环境指南 | | 31 |[gym-pybullet-drones](https://github.com/utiasDSL/gym-pybullet-drones) | ![continuous](https://img.shields.io/badge/-continous-green) | ![original](./dizoo/gym-pybullet-drones/gym-pybullet-drones.gif) | [dizoo link](https://github.com/opendilab/DI-engine/tree/main/dizoo/gym_pybullet_drones/envs)
环境指南 | | 32 |[beergame](https://github.com/OptMLGroup/DeepBeerInventory-RL) | ![discrete](https://img.shields.io/badge/-discrete-brightgreen) | ![original](./dizoo/beergame/beergame.png) | [dizoo link](https://github.com/opendilab/DI-engine/tree/main/dizoo/beergame/envs)
环境指南 | -| 32 |[classic_control/acrobot](https://github.com/openai/gym/tree/master/gym/envs/classic_control) | ![discrete](https://img.shields.io/badge/-discrete-brightgreen) | ![original](./dizoo/classic_control/acrobot/acrobot.gif) | [dizoo link](https://github.com/opendilab/DI-engine/tree/main/dizoo/classic_control/acrobot/envs)
环境指南 | +| 33 |[classic_control/acrobot](https://github.com/openai/gym/tree/master/gym/envs/classic_control) | ![discrete](https://img.shields.io/badge/-discrete-brightgreen) | ![original](./dizoo/classic_control/acrobot/acrobot.gif) | [dizoo link](https://github.com/opendilab/DI-engine/tree/main/dizoo/classic_control/acrobot/envs)
环境指南 | ![discrete](https://img.shields.io/badge/-discrete-brightgreen) means discrete action space From 09d95ff14d750a2e7d04547e8de4dcdc0b0177be Mon Sep 17 00:00:00 2001 From: Ruoyu Gao Date: Tue, 7 Feb 2023 01:21:43 -0500 Subject: [PATCH 5/5] run format script to fix format problem --- dizoo/classic_control/acrobot/config/__init__.py | 2 +- dizoo/classic_control/acrobot/config/acrobot_dqn_config.py | 5 +---- dizoo/classic_control/acrobot/envs/__init__.py | 2 +- dizoo/classic_control/acrobot/envs/test_acrobot_env.py | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/dizoo/classic_control/acrobot/config/__init__.py b/dizoo/classic_control/acrobot/config/__init__.py index 2079c398a8..036dbf6a93 100644 --- a/dizoo/classic_control/acrobot/config/__init__.py +++ b/dizoo/classic_control/acrobot/config/__init__.py @@ -1 +1 @@ -from .acrobot_dqn_config import acrobot_dqn_config, acrobot_dqn_create_config \ No newline at end of file +from .acrobot_dqn_config import acrobot_dqn_config, acrobot_dqn_create_config diff --git a/dizoo/classic_control/acrobot/config/acrobot_dqn_config.py b/dizoo/classic_control/acrobot/config/acrobot_dqn_config.py index bd8c8ed918..4957db987f 100644 --- a/dizoo/classic_control/acrobot/config/acrobot_dqn_config.py +++ b/dizoo/classic_control/acrobot/config/acrobot_dqn_config.py @@ -42,10 +42,7 @@ acrobot_dqn_config = EasyDict(acrobot_dqn_config) main_config = acrobot_dqn_config acrobot_dqn_create_config = dict( - env = dict( - type = 'acrobot', - import_names = ['dizoo.classic_control.acrobot.envs.acrobot_env'] - ), + env=dict(type='acrobot', import_names=['dizoo.classic_control.acrobot.envs.acrobot_env']), env_manager=dict(type='subprocess'), policy=dict(type='dqn'), replay_buffer=dict(type='deque', import_names=['ding.data.buffer.deque_buffer_wrapper']), diff --git a/dizoo/classic_control/acrobot/envs/__init__.py b/dizoo/classic_control/acrobot/envs/__init__.py index c586e7a5f7..be6537f2c9 100644 --- a/dizoo/classic_control/acrobot/envs/__init__.py +++ b/dizoo/classic_control/acrobot/envs/__init__.py @@ -1 +1 @@ -from .acrobot_env import AcroBotEnv \ No newline at end of file +from .acrobot_env import AcroBotEnv diff --git a/dizoo/classic_control/acrobot/envs/test_acrobot_env.py b/dizoo/classic_control/acrobot/envs/test_acrobot_env.py index 0dd05b7068..fba0914cfa 100644 --- a/dizoo/classic_control/acrobot/envs/test_acrobot_env.py +++ b/dizoo/classic_control/acrobot/envs/test_acrobot_env.py @@ -2,6 +2,7 @@ import numpy as np from dizoo.classic_control.acrobot.envs import AcroBotEnv + @pytest.mark.envtest class TestAcrobotEnv: @@ -32,4 +33,3 @@ def test_naive(self): assert timestep.reward <= env.reward_space.high print(env.observation_space, env.action_space, env.reward_space) env.close() -