Project Icon

tianshou

基于PyTorch的高性能模块化强化学习框架

Tianshou是基于PyTorch和Gymnasium的强化学习框架,提供高性能、模块化设计和友好接口。支持在线、离线、多智能体及基于模型的算法,兼顾实现简洁和灵活性。特点包括向量化环境、RNN训练、自定义状态/动作等。框架涵盖多种先进算法,配有完善文档和测试,适合研究和应用开发。


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

Tianshou (天授) is a reinforcement learning platform based on pure PyTorch and Gymnasium. 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 environments1)
  • 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)

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

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

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

Why Tianshou?

Comprehensive Functionality

RL PlatformGitHub Stars# of Alg. (1)Custom EnvBatch TrainingRNN SupportNested ObservationBackend
BaselinesGitHub stars9:heavy_check_mark: (gym):heavy_minus_sign: (2):heavy_check_mark::x:TF1
Stable-BaselinesGitHub stars11:heavy_check_mark: (gym):heavy_minus_sign: (2):heavy_check_mark::x:TF1
Stable-Baselines3GitHub stars7 (3):heavy_check_mark: (gym):heavy_minus_sign: (2):x::heavy_check_mark:PyTorch
Ray/RLlibGitHub stars16:heavy_check_mark::heavy_check_mark::heavy_check_mark::heavy_check_mark:TF/PyTorch
SpinningUpGitHub stars6:heavy_check_mark: (gym):heavy_minus_sign: (2):x::x:PyTorch
DopamineGitHub stars7:x::x::x::x:TF/JAX
ACMEGitHub stars14:heavy_check_mark: (dm_env):heavy_check_mark::heavy_check_mark::heavy_check_mark:TF/JAX
keras-rlGitHub stars7:heavy_check_mark: (gym):x::x::x:Keras
rlpytGitHub stars11:x::heavy_check_mark::heavy_check_mark::heavy_check_mark:PyTorch
ChainerRLGitHub stars18:heavy_check_mark: (gym):heavy_check_mark::heavy_check_mark::x:Chainer
Sample FactoryGitHub stars1 (4)

Footnotes

  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.

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号