MCPcopy Index your code
hub / github.com/thu-ml/tianshou

github.com/thu-ml/tianshou @v2.0.1

repository ↗ · DeepWiki ↗ · release v2.0.1 ↗ · + Follow
5,259 symbols 21,083 edges 245 files 721 documented · 14% 1 cross-repo links updated 3mo agov2.0.1 · 2026-04-02★ 10,838130 open issues
README


PyPI Read the Docs Pytest codecov GitHub issues GitHub stars GitHub forks GitHub license

[!NOTE] Tianshou version 2 is here!

We have released the new major version of Tianshou on PyPI.
Version 2 is a complete overhaul of the software design of the procedural API, in which * we establish a clear separation between learning algorithms and policies (via the separate abstractions Algorithm and Policy). * we provide more well-defined, more usable interfaces with extensive documentation of all algorithm and trainer parameters, renaming some parameters to make their names more consistent and intuitive. * the class hierarchy is fully revised, establishing a clear separation between on-policy, off-policy and offline algorithms at the type level and ensuring that all inheritance relationships are meaningful.

Because of the extent of the changes, this version is not backwards compatible with previous versions of Tianshou. For migration information, please see the change log.

Tianshou (天授) is a reinforcement learning (RL) library based on pure PyTorch and Gymnasium. Tianshou's main features at a glance are:

  1. Modular low-level interfaces for algorithm developers (RL researchers) that are both flexible, hackable and type-safe.
  2. Convenient high-level interfaces for applications of RL (training an implemented algorithm on a custom environment).
  3. Large scope: online (on- and off-policy) and offline RL, experimental support for multi-agent RL (MARL), experimental support for model-based RL, and more

Unlike other reinforcement learning libraries, which may have complex codebases, unfriendly high-level APIs, or are not optimized for speed, Tianshou provides a high-performance, modularized framework and user-friendly interfaces for building deep reinforcement learning agents. One more aspect that sets Tianshou apart is its generality: it supports online and offline RL, multi-agent RL, and model-based algorithms.

Tianshou aims at enabling concise implementations, both for researchers and practitioners, without sacrificing flexibility.

Supported algorithms include:

Other noteworthy features:

  • Elegant framework with dual APIs:
  • Tianshou's high-level API maximizes ease of use for application development while still retaining a high degree of flexibility.
  • The fundamental procedural API provides a maximum of flexibility for algorithm development without being overly verbose.
  • State-of-the-art results in MuJoCo benchmarks for REINFORCE/A2C/TRPO/PPO/DDPG/TD3/SAC algorithms
  • Support for vectorized environments (synchronous or asynchronous) for all algorithms (see usage)
  • Support for super-fast vectorized environments based on EnvPool for all algorithms (see usage)
  • Support for recurrent state representations in actor networks and critic networks (RNN-style training for POMDPs) (see usage)
  • Support any type of environment state/action (e.g. a dict, a self-defined class, ...) Usage
  • Support for customized training processes (see usage)
  • Support n-step returns estimation and prioritized experience replay for all Q-learning based algorithms; GAE, nstep and PER are highly optimized thanks to numba's just-in-time compilation and vectorized numpy operations
  • Support for multi-agent RL (see usage)
  • Support for logging based on both TensorBoard and W&B
  • Support for multi-GPU training (see usage)
  • Comprehensive documentation, PEP8 code-style checking, type checking and thorough tests

In Chinese, Tianshou means divinely ordained, being derived to the gift of being born. Tianshou is a reinforcement learning platform, and the nature of RL is not learn from humans. So taking "Tianshou" means that there is no teacher to learn from, but rather to learn by oneself through constant interaction with the environment.

“天授”意指上天所授,引申为与生具有的天赋。天授是强化学习平台,而强化学习算法并不是向人类学习的,所以取“天授”意思是没有老师来教,而是自己通过跟环境不断交互来进行学习。

Installation

Tianshou is currently hosted on PyPI and conda-forge. It requires Python >= 3.11.

For installing the most recent version of Tianshou, the best way is clone the repository and install it with poetry (which you need to install on your system first)

git clone git@github.com:thu-ml/tianshou.git
cd tianshou
poetry install

You can also install the dev requirements by adding --with dev or the extras for say mujoco and acceleration by envpool by adding --extras "mujoco envpool"

If you wish to install multiple extras, ensure that you include them in a single command. Sequential calls to poetry install --extras xxx will overwrite prior installations, leaving only the last specified extras installed. Or you may install all the following extras by adding --all-extras.

Available extras are:

  • atari (for Atari environments)
  • box2d (for Box2D environments)
  • classic_control (for classic control (discrete) environments)
  • mujoco (for MuJoCo environments)
  • mujoco-py (for legacy mujoco-py environments[^1])
  • pybullet (for pybullet environments)
  • robotics (for gymnasium-robotics environments)
  • vizdoom (for ViZDoom environments)
  • envpool (for envpool integration)
  • argparse (in order to be able to run the high level API examples)

[^1]: mujoco-py is a legacy package and is not recommended for new projects. It is only included for compatibility with older projects. Also note that there may be compatibility issues with macOS newer than Monterey.

Otherwise, you can install the latest release from PyPI (currently far behind the master) with the following command:

$ pip install tianshou

If you are using Anaconda or Miniconda, you can install Tianshou from conda-forge:

$ conda install tianshou -c conda-forge

Alternatively to the poetry install, you can also install the latest source version through GitHub:

$ pip install git+https://github.com/thu-ml/tianshou.git@master --upgrade

Finally, you may check the installation via your Python console as follows:

import tianshou
print(tianshou.__version__)

If no errors are reported, you have successfully installed Tianshou.

Documentation

Find example scripts in the test/ and examples/ folders.

Tutorials and API documentation are hosted on tianshou.readthedocs.io.

Why Tianshou?

Comprehensive Functionality

High Software Engineering Standards

RL Platform Documentation Code Coverage Type Hints Last Update
Stable-Baselines3 Documentation Status coverage report :heavy_check_mark: GitHub last commit
Ray/RLlib :heavy_minus_sign:(1) :heavy_check_mark: GitHub last commit
SpinningUp :x:

Core symbols most depended-on inside this repo

map
called by 290
docs/_static/js/vega-lite@5.js
t
called by 264
docs/_static/js/vega@5.js
seed
called by 195
tianshou/env/venvs.py
e
called by 188
docs/_static/js/vega@5.js
s
called by 176
docs/_static/js/vega@5.js
add
called by 171
docs/_static/js/vega@5.js
info
called by 170
tianshou/highlevel/env.py
n
called by 164
docs/_static/js/vega@5.js

Shape

Function 2,774
Method 1,859
Class 622
Route 4

Languages

TypeScript55%
Python45%

Modules by API surface

docs/_static/js/vega@5.js1,658 symbols
docs/_static/js/vega-lite@5.js1,060 symbols
tianshou/highlevel/experiment.py137 symbols
tianshou/data/batch.py100 symbols
docs/_static/js/jquery-1.12.4.min.js86 symbols
docs/_static/js/vega-embed@5.js78 symbols
tianshou/highlevel/params/algorithm_params.py77 symbols
tianshou/algorithm/algorithm_base.py77 symbols
tianshou/trainer.py66 symbols
tianshou/data/collector.py65 symbols
tianshou/highlevel/algorithm.py63 symbols
test/base/test_batch.py57 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add tianshou \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact