pfrl  by pfnet

PyTorch library for deep reinforcement learning research

created 5 years ago
1,241 stars

Top 32.4% on sourcepulse

GitHubView on GitHub
Project Summary

PFRL is a comprehensive deep reinforcement learning library built with PyTorch, offering implementations of numerous state-of-the-art algorithms. It targets researchers and practitioners in RL, providing a robust framework for developing and experimenting with complex RL agents, and includes pretrained models for common benchmarks to accelerate reproducibility and research.

How It Works

PFRL implements a wide array of RL algorithms, including DQN variants, policy gradient methods like PPO and TRPO, and actor-critic methods such as A3C and SAC. It supports both discrete and continuous action spaces, recurrent models, and batch/asynchronous training. The library also integrates advanced techniques like NoisyNets, Prioritized Experience Replay, Dueling Networks, and Normalized Advantage Functions, offering flexibility and performance enhancements.

Quick Start & Requirements

  • Install via PyPI: pip install pfrl
  • Tested with Python 3.7.7. See requirements.txt for other dependencies.
  • Official documentation and quickstart guide available.
  • Examples for Atari 2600 and OpenAI Gym environments are provided.

Highlighted Details

  • Implements 10+ core RL algorithms (DQN, Rainbow, IQN, DDPG, A3C, PPO, SAC, TRPO, TD3, ACER).
  • Supports advanced techniques: NoisyNet, Prioritized Experience Replay, Dueling Network, Normalized Advantage Function, Deep Recurrent Q-Network.
  • Offers pretrained models for Atari and Mujoco environments for reproducibility.
  • Supports batch training and CPU asynchronous training for A3C.

Maintenance & Community

  • Based on ChainerRL, with a citation provided to its JMLR paper.
  • Contribution guidelines are available in CONTRIBUTING.md.

Licensing & Compatibility

  • MIT License.
  • Compatible with OpenAI Gym interface environments.

Limitations & Caveats

The library is tested with Python 3.7.7, and compatibility with newer Python versions may require verification. While extensive, the breadth of algorithms and techniques might imply a steeper learning curve for newcomers to RL.

Health Check
Last commit

1 year ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
19 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.