Skip to content
:godmode: Bezos: Build your own Reinforcement Learning framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Contributors MIT License LinkedIn


Bezos :godmode:: Build your own Reinforcement Learning framework

Bezos is a light Deep RL framework that you can fork and extend.

Report Bug · Request Feature

Table of Contents

About The Project

There are many great reinforcement learning frameworks on GitHub, however, I didn't find one that was light and small enough to let me fork it and add my own algorithms while still feeling in control. I thus created Bezos, a very light RL framework which implements all the boring things so that you don't have to.


  • Rollout class (supports GAE, reward to go, and recurrent neural network)
  • Runner class: loads a Gym env and runs one or multiple agents on the environment to generate rollouts
  • A simple Actor Critic Network
  • RL Algorithm: PPO Paper on Arxiv
  • RL Algorithm: A2C OpenAI blog post
  • Supports all the OpenAI Gym env
  • I added all the Vizdoom envs as well (look into kits/)
  • Supports the marLo env Github (look into kits/)
  • A bunch of useful OpenAI Gym wrappers. Includes frame skipping, RGB→Grayscale, cropping, and many more. (look into

Built With

The framework uses Pytorch to do all the deep learning stuff, numpy, and OpenAI Gym

Getting Started

Bezos has been designed to be configured before each run with a YAML file. Some examples of those YAML config files can be found in the configs folder. If you want to know what a parameter does (they are all self explanatory) check the source :)


  • Create a new conda env (yo don't use python 2 ok)
  • pip install -r requirements.txt


Train a model (params in the config file)

python --config ./configs/ppo-minecraft.yaml train

Evaluate a model

python --config ./configs/ppo-minecraft.yaml evaluate --det


Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature)
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request


Distributed under the MIT License. See LICENSE for more information.

You can’t perform that action at this time.