SLM Lab

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

Algorithms

SLM Lab implements most of the canonical RL algorithms:

  • SARSA

  • DQN (Deep Q-Network)

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

  • REINFORCE

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

Environments

SLM Lab currently includes the following environment offerings:

Citation

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

@misc{kenggraesser2017slmlab,
author = {Keng, Wah Loon and Graesser, Laura},
title = {SLM Lab},
year = {2017},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/kengz/SLM-Lab}},
}

License

This project is licensed under the MIT License.