2020-03-28 22:01:23 +08:00
.. Tianshou documentation master file, created by
sphinx-quickstart on Sat Mar 28 15:58:19 2020.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
2020-09-11 07:55:37 +08:00
2020-03-29 10:22:03 +08:00
Welcome to Tianshou!
====================
2020-04-02 09:07:04 +08:00
**Tianshou** (`天授 <https://baike.baidu.com/item/%E5%A4%A9%E6%8E%88> `_ ) is a reinforcement learning platform based on pure PyTorch. Unlike existing reinforcement learning libraries, which are mainly based on TensorFlow, have many nested classes, unfriendly API, or slow-speed, Tianshou provides a fast-speed framework and pythonic API for building the deep reinforcement learning agent. The supported interface algorithms include:
2020-03-29 10:22:03 +08:00
2020-04-06 19:36:59 +08:00
* :class: `~tianshou.policy.DQNPolicy` `Deep Q-Network <https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf> `_
2020-07-22 14:42:08 +08:00
* :class: `~tianshou.policy.DQNPolicy` `Double DQN <https://arxiv.org/pdf/1509.06461.pdf> `_
2020-07-29 19:44:42 +08:00
* :class: `~tianshou.policy.DQNPolicy` `Dueling DQN <https://arxiv.org/pdf/1511.06581.pdf> `_
2022-05-15 15:40:32 +02:00
* :class: `~tianshou.policy.BranchingDQNPolicy` `Branching DQN <https://arxiv.org/pdf/1711.08946.pdf> `_
2021-03-30 11:50:35 +08:00
* :class: `~tianshou.policy.C51Policy` `Categorical DQN <https://arxiv.org/pdf/1707.06887.pdf> `_
2022-03-16 14:38:51 +01:00
* :class: `~tianshou.policy.RainbowPolicy` `Rainbow DQN <https://arxiv.org/pdf/1710.02298.pdf> `_
2021-01-28 09:27:05 +08:00
* :class: `~tianshou.policy.QRDQNPolicy` `Quantile Regression DQN <https://arxiv.org/pdf/1710.10044.pdf> `_
2021-05-28 18:44:23 -07:00
* :class: `~tianshou.policy.IQNPolicy` `Implicit Quantile Network <https://arxiv.org/pdf/1806.06923.pdf> `_
2021-06-14 20:59:02 -07:00
* :class: `~tianshou.policy.FQFPolicy` `Fully-parameterized Quantile Function <https://arxiv.org/pdf/1911.02140.pdf> `_
2021-04-16 20:37:12 +08:00
* :class: `~tianshou.policy.PGPolicy` `Policy Gradient <https://papers.nips.cc/paper/1713-policy-gradient-methods-for-reinforcement-learning-with-function-approximation.pdf> `_
2021-04-21 09:52:15 +08:00
* :class: `~tianshou.policy.NPGPolicy` `Natural Policy Gradient <https://proceedings.neurips.cc/paper/2001/file/4b86abe48d358ecf194c56c69108433e-Paper.pdf> `_
2020-04-06 19:36:59 +08:00
* :class: `~tianshou.policy.A2CPolicy` `Advantage Actor-Critic <https://openai.com/blog/baselines-acktr-a2c/> `_
2021-04-16 20:37:12 +08:00
* :class: `~tianshou.policy.TRPOPolicy` `Trust Region Policy Optimization <https://arxiv.org/pdf/1502.05477.pdf> `_
2020-04-06 19:36:59 +08:00
* :class: `~tianshou.policy.PPOPolicy` `Proximal Policy Optimization <https://arxiv.org/pdf/1707.06347.pdf> `_
2021-04-16 20:37:12 +08:00
* :class: `~tianshou.policy.DDPGPolicy` `Deep Deterministic Policy Gradient <https://arxiv.org/pdf/1509.02971.pdf> `_
2020-04-06 19:36:59 +08:00
* :class: `~tianshou.policy.TD3Policy` `Twin Delayed DDPG <https://arxiv.org/pdf/1802.09477.pdf> `_
* :class: `~tianshou.policy.SACPolicy` `Soft Actor-Critic <https://arxiv.org/pdf/1812.05905.pdf> `_
2022-04-30 09:06:00 -07:00
* :class: `~tianshou.policy.REDQPolicy` `Randomized Ensembled Double Q-Learning <https://arxiv.org/pdf/2101.05982.pdf> `_
2020-09-22 16:28:46 +08:00
* :class: `~tianshou.policy.DiscreteSACPolicy` `Discrete Soft Actor-Critic <https://arxiv.org/pdf/1910.07207.pdf> `_
2020-04-14 21:11:06 +08:00
* :class: `~tianshou.policy.ImitationPolicy` Imitation Learning
2021-11-22 22:21:02 +08:00
* :class: `~tianshou.policy.BCQPolicy` `Batch-Constrained deep Q-Learning <https://arxiv.org/pdf/1812.02900.pdf> `_
2022-01-16 05:30:21 +08:00
* :class: `~tianshou.policy.CQLPolicy` `Conservative Q-Learning <https://arxiv.org/pdf/2006.04779.pdf> `_
2022-06-06 09:39:37 -07:00
* :class: `~tianshou.policy.TD3BCPolicy` `Twin Delayed DDPG with Behavior Cloning <https://arxiv.org/pdf/2106.06860.pdf> `_
2021-01-20 02:13:04 -08:00
* :class: `~tianshou.policy.DiscreteBCQPolicy` `Discrete Batch-Constrained deep Q-Learning <https://arxiv.org/pdf/1910.01708.pdf> `_
2021-05-11 18:24:48 -07:00
* :class: `~tianshou.policy.DiscreteCQLPolicy` `Discrete Conservative Q-Learning <https://arxiv.org/pdf/2006.04779.pdf> `_
2021-05-18 22:29:56 -07:00
* :class: `~tianshou.policy.DiscreteCRRPolicy` `Critic Regularized Regression <https://arxiv.org/pdf/2006.15134.pdf> `_
2022-03-06 07:57:15 -08:00
* :class: `~tianshou.policy.GAILPolicy` `Generative Adversarial Imitation Learning <https://arxiv.org/pdf/1606.03476.pdf> `_
2021-01-20 02:13:04 -08:00
* :class: `~tianshou.policy.PSRLPolicy` `Posterior Sampling Reinforcement Learning <https://www.ece.uvic.ca/~bctill/papers/learning/Strens_2000.pdf> `_
2022-01-14 10:43:48 -08:00
* :class: `~tianshou.policy.ICMPolicy` `Intrinsic Curiosity Module <https://arxiv.org/pdf/1705.05363.pdf> `_
2020-05-27 11:02:23 +08:00
* :class: `~tianshou.data.PrioritizedReplayBuffer` `Prioritized Experience Replay <https://arxiv.org/pdf/1511.05952.pdf> `_
* :meth: `~tianshou.policy.BasePolicy.compute_episodic_return` `Generalized Advantage Estimator <https://arxiv.org/pdf/1506.02438.pdf> `_
2022-10-31 08:54:54 +09:00
* :class: `~tianshou.data.HERReplayBuffer` `Hindsight Experience Replay <https://arxiv.org/pdf/1707.01495.pdf> `_
2020-03-29 10:22:03 +08:00
2020-06-03 17:04:26 +08:00
Here is Tianshou's other features:
2020-03-29 10:22:03 +08:00
2021-05-23 12:43:03 +08:00
* Elegant framework, using only ~3000 lines of code
2021-03-30 11:50:35 +08:00
* State-of-the-art `MuJoCo benchmark <https://github.com/thu-ml/tianshou/tree/master/examples/mujoco> `_
2022-02-15 06:39:47 +08:00
* Support vectorized environment (synchronous or asynchronous) for all algorithms: :ref: `parallel_sampling`
* Support super-fast vectorized environment `EnvPool <https://github.com/sail-sg/envpool/> `_ for all algorithms: :ref: `envpool_integration`
2020-09-11 07:55:37 +08:00
* 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`
2020-09-08 21:10:48 +08:00
* Support n-step returns estimation :meth: `~tianshou.policy.BasePolicy.compute_nstep_return` and prioritized experience replay :class: `~tianshou.data.PrioritizedReplayBuffer` for all Q-learning based algorithms; GAE, nstep and PER are very fast thanks to numba jit function and vectorized numpy operation
2023-12-04 13:49:30 +01:00
* Support :doc: `/01_tutorials/04_tictactoe`
2021-09-24 19:22:23 +05:30
* Support both `TensorBoard <https://www.tensorflow.org/tensorboard> `_ and `W&B <https://wandb.ai/> `_ log tools
2021-10-05 13:39:14 -04:00
* Support multi-GPU training :ref: `multi_gpu`
2020-09-13 19:31:50 +08:00
* Comprehensive `unit tests <https://github.com/thu-ml/tianshou/actions> `_ , including functional checking, RL pipeline checking, documentation checking, PEP8 code-style checking, and type checking
2020-03-29 10:22:03 +08:00
Installation
2020-06-02 08:51:14 +08:00
------------
2020-03-29 10:22:03 +08:00
2023-11-23 09:43:23 +01:00
Tianshou is currently hosted on `PyPI <https://pypi.org/project/tianshou/> `_ and `conda-forge <https://github.com/conda-forge/tianshou-feedstock> `_ . New releases
(and the current state of the master branch) will require Python >= 3.11.
2020-09-25 15:07:36 +08:00
You can simply install Tianshou from PyPI with the following command:
2020-03-29 10:22:03 +08:00
2020-07-22 14:42:08 +08:00
.. code-block :: bash
$ pip install tianshou
2020-03-29 10:22:03 +08:00
2020-09-25 15:07:36 +08:00
If you use Anaconda or Miniconda, you can install Tianshou from conda-forge through the following command:
2020-03-29 10:22:03 +08:00
2020-07-22 14:42:08 +08:00
.. code-block :: bash
2023-03-19 17:40:47 -07:00
$ conda install tianshou -c conda-forge
2020-03-29 10:22:03 +08:00
2020-09-25 15:07:36 +08:00
You can also install with the newest version through GitHub:
2020-07-22 14:42:08 +08:00
.. code-block :: bash
2020-04-28 20:56:02 +08:00
2020-09-25 15:07:36 +08:00
$ pip install git+https://github.com/thu-ml/tianshou.git@master --upgrade
2020-04-28 20:56:02 +08:00
2020-03-29 10:22:03 +08:00
After installation, open your python console and type
::
2020-09-08 21:10:48 +08:00
import tianshou
print(tianshou.__version__)
2020-03-29 10:22:03 +08:00
If no error occurs, you have successfully installed Tianshou.
2020-09-06 16:20:16 +08:00
Tianshou is still under development, you can also check out the documents in stable version through `tianshou.readthedocs.io/en/stable/ <https://tianshou.readthedocs.io/en/stable/> `_ .
2020-03-29 10:22:03 +08:00
2020-03-28 22:01:23 +08:00
Indices and tables
2020-06-02 08:51:14 +08:00
------------------
2020-03-28 22:01:23 +08:00
* :ref: `genindex`
* :ref: `modindex`
* :ref: `search`