ReinforcePy is meant to be an easy to use collection of helpers, networks, and learners for reinforcement learning. Right now the project is mainly focused on implementing papers from DeepMind and neural network based methods. There have been a ton of new papers published about deep reinforcement learning but no combined place or package of implementations, that is the main purpose of this library.
Currently supported methods are:
- DQN kinda old code, replaced by async paper.
- Async 1 step DQN & SARSA, N-step, A3C, Recurrent support is a WIP. Paper
- Async Double Q-Learning, Double N-step [no paper]
- Async with Experience Replay, supports all Async methods but A3C
Upcoming features can be found in the wiki roadmap.
Example usage, trained models, and results can be found under examples/ALE/. A more in depth look at implementation details can be found in the wiki.
If you don't already I recommend using Anaconda to manage python environments, it also makes installation of Numpy & Scipy a breeze. Required packages:
- NumPy (conda install numpy)
- SciPy (conda install scipy)
- Pillow (conda install pillow)
- TensorFlow >= 1.0
- TFLearn >= 0.3 (git clone then python setup.py install)
- Arcade Learning Environment
- OpenAI Gym support is coming soon
Then simply:
git clone https://github.com/Islandman93/reinforcepy
cd reinforcepy/
python setup.py install
NEW: TensorFlow supports windows, the ALE uses cmake but I was unable to get it working with windows. A Visual Studio port can be found here
Documentation is a work in progress available at: http://reinforcepy.readthedocs.org/.
For support, please submit an issue.
All pull requests are welcome, this project is not tied to any specific reinforcement learning method so feel free to submit any published method or environment.
To hack on the code simply use:
python setup.py develop