Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
T

tianshou

> 编程语言
Open source

An elegant PyTorch deep reinforcement learning library.

10.9K stars0 likes0 views
WebsiteGitHub

About

An elegant PyTorch deep reinforcement learning library.


[!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:

  • Deep Q-Network (DQN)
  • Double DQN
  • Dueling DQN
  • Branching DQN
  • Categorical DQN (C51)
  • Rainbow DQN (Rainbow)
  • Quantile Regression DQN (QRDQN)
  • Implicit Quantile Network (IQN)
  • Fully-parameterized Quantile Function (FQF)
  • Policy Gradient (PG)
  • Natural Policy Gradient (NPG)
  • Advantage Actor-Critic (A2C)
  • Trust Region Policy Optimization (TRPO)
  • Proximal Policy Optimization (PPO)
  • Deep Deterministic Policy Gradient (DDPG)
  • Twin Delayed DDPG (TD3)
  • Soft Actor-Critic (SAC)
  • Randomized Ensembled Double Q-Learning (REDQ)
  • Discrete Soft Actor-Critic (SAC-Discrete)
  • Vanilla Imitation Learning
  • Batch-Constrained deep Q-Learning (BCQ)
  • Conservative Q-Learning (CQL)
  • Twin Delayed DDPG with Behavior Cloning (TD3+BC)
  • Discrete Batch-Constrained deep Q-Learning (BCQ-Discrete)
  • Discrete Conservative Q-Learning (CQL-Discrete)
  • Discrete Critic Regularized Regression (CRR-Discrete)
  • Generative Adversarial Imitation Learning (GAIL)
  • Prioritized Experience Replay (PER)
  • Generalized Advantage Estimator (GAE)
  • Posterior Sampling Reinforcement Learning (PSRL)
  • Intrinsic Curiosity Module (ICM)
  • Hindsight Experience Replay (HER)

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 [email protected]: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 :heavy_check_mark:
[Ray/

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Pythona2cataribcqcql

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言