From 4fe125a241df0c763992d360b87e486562b3dd62 Mon Sep 17 00:00:00 2001 From: Chengqi Duan <43027865+gogoduan@users.noreply.github.com> Date: Tue, 15 Feb 2022 06:39:47 +0800 Subject: [PATCH] update dqn tutorial and add envpool to docs (#526) Co-authored-by: Jiayi Weng --- Makefile | 4 +- README.md | 3 +- docs/_static/images/pipeline.png | Bin 0 -> 109832 bytes docs/_static/images/rl-loop.jpg | Bin 0 -> 16710 bytes docs/index.rst | 3 +- docs/spelling_wordlist.txt | 3 ++ docs/tutorials/cheatsheet.rst | 23 ++++++++-- docs/tutorials/dqn.rst | 71 ++++++++++++++++++++++++++++--- tianshou/data/buffer/base.py | 2 +- 9 files changed, 96 insertions(+), 13 deletions(-) create mode 100644 docs/_static/images/pipeline.png create mode 100644 docs/_static/images/rl-loop.jpg diff --git a/Makefile b/Makefile index da5030ccd..616c4c983 100644 --- a/Makefile +++ b/Makefile @@ -52,9 +52,11 @@ spelling: $(call check_install_extra, sphinxcontrib.spelling, sphinxcontrib.spelling pyenchant) cd docs && make spelling SPHINXOPTS="-W" -clean: +doc-clean: cd docs && make clean +clean: doc-clean + commit-checks: format lint mypy check-docstyle spelling .PHONY: clean spelling doc mypy lint format check-codestyle check-docstyle commit-checks diff --git a/README.md b/README.md index a8fb2f051..1144a0cab 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,8 @@ Here is Tianshou's other features: - Elegant framework, using only ~4000 lines of code - State-of-the-art [MuJoCo benchmark](https://github.com/thu-ml/tianshou/tree/master/examples/mujoco) for REINFORCE/A2C/TRPO/PPO/DDPG/TD3/SAC algorithms -- Support parallel environment simulation (synchronous or asynchronous) for all algorithms [Usage](https://tianshou.readthedocs.io/en/master/tutorials/cheatsheet.html#parallel-sampling) +- Support vectorized environment (synchronous or asynchronous) for all algorithms [Usage](https://tianshou.readthedocs.io/en/master/tutorials/cheatsheet.html#parallel-sampling) +- Support super-fast vectorized environment [EnvPool](https://github.com/sail-sg/envpool/) for all algorithms [Usage](https://tianshou.readthedocs.io/en/master/tutorials/cheatsheet.html#envpool-integration) - Support recurrent state representation in actor network and critic network (RNN-style training for POMDP) [Usage](https://tianshou.readthedocs.io/en/master/tutorials/cheatsheet.html#rnn-style-training) - Support any type of environment state/action (e.g. a dict, a self-defined class, ...) [Usage](https://tianshou.readthedocs.io/en/master/tutorials/cheatsheet.html#user-defined-environment-and-different-state-representation) - Support customized training process [Usage](https://tianshou.readthedocs.io/en/master/tutorials/cheatsheet.html#customize-training-process) diff --git a/docs/_static/images/pipeline.png b/docs/_static/images/pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..5cbfaa386033b3f59f8f4b8dbced7889ec2503e5 GIT binary patch literal 109832 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 -* Support parallel environment simulation (synchronous or asynchronous) for all algorithms: :ref:`parallel_sampling` +* Support vectorized environment (synchronous or asynchronous) for all algorithms: :ref:`parallel_sampling` +* Support super-fast vectorized environment `EnvPool `_ for all algorithms: :ref:`envpool_integration` * Support recurrent state representation in actor network and critic network (RNN-style training for POMDP): :ref:`rnn_training` * Support any type of environment state/action (e.g. a dict, a self-defined class, ...): :ref:`self_defined_env` * Support :ref:`customize_training` diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt index b6d419e00..9f0377b43 100644 --- a/docs/spelling_wordlist.txt +++ b/docs/spelling_wordlist.txt @@ -9,8 +9,11 @@ optim eps timelimit TimeLimit +envpool +EnvPool maxsize timestep +timesteps numpy ndarray stackoverflow diff --git a/docs/tutorials/cheatsheet.rst b/docs/tutorials/cheatsheet.rst index a1feb291f..6273c06af 100644 --- a/docs/tutorials/cheatsheet.rst +++ b/docs/tutorials/cheatsheet.rst @@ -63,14 +63,11 @@ To correctly render the data (including several tfevent files), we highly recomm Parallel Sampling ----------------- -Tianshou provides the following classes for parallel environment simulation: +Tianshou provides the following classes for vectorized environment: - :class:`~tianshou.env.DummyVectorEnv` is for pseudo-parallel simulation (implemented with a for-loop, useful for debugging). - - :class:`~tianshou.env.SubprocVectorEnv` uses multiple processes for parallel simulation. This is the most often choice for parallel simulation. - - :class:`~tianshou.env.ShmemVectorEnv` has a similar implementation to :class:`~tianshou.env.SubprocVectorEnv`, but is optimized (in terms of both memory footprint and simulation speed) for environments with large observations such as images. - - :class:`~tianshou.env.RayVectorEnv` is currently the only choice for parallel simulation in a cluster with multiple machines. Although these classes are optimized for different scenarios, they have exactly the same APIs because they are sub-classes of :class:`~tianshou.env.BaseVectorEnv`. Just provide a list of functions who return environments upon called, and it is all set. @@ -119,6 +116,24 @@ The figure in the right gives an intuitive comparison among synchronous/asynchro Otherwise, the outputs of these envs may be the same with each other. +.. _envpool_integration: + +EnvPool Integration +------------------- + +`EnvPool `_ is a C++-based vectorized environment implementation and is way faster than the above solutions. The APIs are almost the same as above four classes, so that means you can directly switch the vectorized environment to envpool and get immediate speed-up. + +Currently it supports Atari, VizDoom, toy_text and classic_control environments. For more information, please refer to `EnvPool's documentation `_. + +:: + + # install envpool: pip3 install envpool + + import envpool + envs = envpool.make_gym("CartPole-v0", num_envs=10) + collector = Collector(policy, envs, buffer) + +Here are some examples: https://github.com/sail-sg/envpool/tree/master/examples/tianshou_examples .. _preprocess_fn: diff --git a/docs/tutorials/dqn.rst b/docs/tutorials/dqn.rst index 0126c7fca..5810b2b62 100644 --- a/docs/tutorials/dqn.rst +++ b/docs/tutorials/dqn.rst @@ -9,10 +9,33 @@ The full script is at `test/discrete/test_dqn.py `_, which could only accept a config specification of hyperparameters, network, and others, Tianshou provides an easy way of construction through the code-level. +Overview +-------- + +In reinforcement learning, the agent interacts with environments to improve itself. + +.. image:: /_static/images/rl-loop.jpg + :align: center + :height: 200 + +There are three types of data flow in RL training pipeline: + +1. Agent to environment: ``action`` will be generated by agent and sent to environment; +2. Environment to agent: ``env.step`` takes action, and returns a tuple of ``(observation, reward, done, info)``; +3. Agent-environment interaction to agent training: the data generated by interaction will be stored and sent to the learner of agent. + +In the following sections, we will set up (vectorized) environments, policy (with neural network), collector (with buffer), and trainer to successfully run the RL training and evaluation pipeline. +Here is the overall system: + +.. image:: /_static/images/pipeline.png + :align: center + :height: 300 + + Make an Environment ------------------- -First of all, you have to make an environment for your agent to interact with. For environment interfaces, we follow the convention of `OpenAI Gym `_. In your Python code, simply import Tianshou and make the environment: +First of all, you have to make an environment for your agent to interact with. You can use ``gym.make(environment_name)`` to make an environment for your agent. For environment interfaces, we follow the convention of `OpenAI Gym `_. In your Python code, simply import Tianshou and make the environment: :: import gym @@ -20,11 +43,21 @@ First of all, you have to make an environment for your agent to interact with. F env = gym.make('CartPole-v0') -CartPole-v0 is a simple environment with a discrete action space, for which DQN applies. You have to identify whether the action space is continuous or discrete and apply eligible algorithms. DDPG :cite:`DDPG`, for example, could only be applied to continuous action spaces, while almost all other policy gradient methods could be applied to both, depending on the probability distribution on the action. +CartPole-v0 includes a cart carrying a pole moving on a track. This is a simple environment with a discrete action space, for which DQN applies. You have to identify whether the action space is continuous or discrete and apply eligible algorithms. DDPG :cite:`DDPG`, for example, could only be applied to continuous action spaces, while almost all other policy gradient methods could be applied to both. + +Here is the detail of useful fields of CartPole-v0: +- ``state``: the position of the cart, the velocity of the cart, the angle of the pole and the velocity of the tip of the pole; +- ``action``: can only be one of ``[0, 1, 2]``, for moving the cart left, no move, and right; +- ``reward``: each timestep you last, you will receive a +1 ``reward``; +- ``done``: if CartPole is out-of-range or timeout (the pole is more than 15 degrees from vertical, or the cart moves more than 2.4 units from the center, or you last over 200 timesteps); +- ``info``: extra info from environment simulation. -Setup Multi-environment Wrapper -------------------------------- +The goal is to train a good policy that can get the highest reward in this environment. + + +Setup Vectorized Environment +---------------------------- If you want to use the original ``gym.Env``: :: @@ -32,7 +65,13 @@ If you want to use the original ``gym.Env``: train_envs = gym.make('CartPole-v0') test_envs = gym.make('CartPole-v0') -Tianshou supports parallel sampling for all algorithms. It provides four types of vectorized environment wrapper: :class:`~tianshou.env.DummyVectorEnv`, :class:`~tianshou.env.SubprocVectorEnv`, :class:`~tianshou.env.ShmemVectorEnv`, and :class:`~tianshou.env.RayVectorEnv`. It can be used as follows: (more explanation can be found at :ref:`parallel_sampling`) +Tianshou supports vectorized environment for all algorithms. It provides four types of vectorized environment wrapper: + +- :class:`~tianshou.env.DummyVectorEnv`: the sequential version, using a single-thread for-loop; +- :class:`~tianshou.env.SubprocVectorEnv`: use python multiprocessing and pipe for concurrent execution; +- :class:`~tianshou.env.ShmemVectorEnv`: use share memory instead of pipe based on SubprocVectorEnv; +- :class:`~tianshou.env.RayVectorEnv`: use Ray for concurrent activities and is currently the only choice for parallel simulation in a cluster with multiple machines. It can be used as follows: (more explanation can be found at :ref:`parallel_sampling`) + :: train_envs = ts.env.DummyVectorEnv([lambda: gym.make('CartPole-v0') for _ in range(10)]) @@ -40,6 +79,14 @@ Tianshou supports parallel sampling for all algorithms. It provides four types o Here, we set up 10 environments in ``train_envs`` and 100 environments in ``test_envs``. +You can also try the super-fast vectorized environment `EnvPool `_ by + +:: + + import envpool + train_envs = envpool.make_gym("CartPole-v0", num_envs=10) + test_envs = envpool.make_gym("CartPole-v0", num_envs=100) + For the demonstration, here we use the second code-block. .. warning:: @@ -111,11 +158,25 @@ Setup Collector The collector is a key concept in Tianshou. It allows the policy to interact with different types of environments conveniently. In each step, the collector will let the policy perform (at least) a specified number of steps or episodes and store the data in a replay buffer. + +The following code shows how to set up a collector in practice. It is worth noticing that VectorReplayBuffer is to be used in vectorized environment scenarios, and the number of buffers, in the following case 10, is preferred to be set as the number of environments. + :: train_collector = ts.data.Collector(policy, train_envs, ts.data.VectorReplayBuffer(20000, 10), exploration_noise=True) test_collector = ts.data.Collector(policy, test_envs, exploration_noise=True) +The main function of collector is the collect function, which can be summarized in the following lines: + +:: + + result = self.policy(self.data, last_state) # the agent predicts the batch action from batch observation + act = to_numpy(result.act) + self.data.update(act=act) # update the data with new action/policy + result = self.env.step(act, ready_env_ids) # apply action to environment + obs_next, rew, done, info = result + self.data.update(obs_next=obs_next, rew=rew, done=done, info=info) # update the data with new state/reward/done/info + Train Policy with a Trainer --------------------------- diff --git a/tianshou/data/buffer/base.py b/tianshou/data/buffer/base.py index b384e1f06..fc783467d 100644 --- a/tianshou/data/buffer/base.py +++ b/tianshou/data/buffer/base.py @@ -46,7 +46,7 @@ def __init__( "sample_avail": sample_avail, } super().__init__() - self.maxsize = size + self.maxsize = int(size) assert stack_num > 0, "stack_num should be greater than 0" self.stack_num = stack_num self._indices = np.arange(size)