Modular Deep Reinforcement Learning framework in PyTorch.

GitHub tag (latest SemVer) CI Maintainability Test Coverage

SLM Lab is a software framework for reproducible reinforcement learning (RL) research. It enables easy development of RL algorithms using modular components and file-based configuration. It also enables flexible experimentation completed with hyperparameter search, result analysis and benchmark results.

📖 SLM Lab is also the companion library of the book Foundations of Deep Reinforcement Learning. The book's website and errata is here.

✨ Features


SLM Lab implements most of the canonical RL algorithms:


  • DQN (Deep Q-Network)

  • Double-DQN, Dueling-DQN, PER (Prioritized Experience Replay)


  • A2C (Advantage Actor-Critic) with GAE & n-step

  • PPO (Proximal Policy Optimization)

  • SAC (Soft Actor-Critic)

  • SIL (Self Imitation Learning)

  • Asynchronous version of all the above

They are implemented in a modular way such that differences in algorithm performance can be confidently ascribed to differences between algorithms, not between implementations.


SLM Lab currently includes the following environment offerings:


If you use SLM Lab in your publication, please cite below:

author = {Keng, Wah Loon and Graesser, Laura},
title = {SLM Lab},
year = {2017},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{}},


This project is licensed under the MIT License.