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.

✨ 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.