• Stars
    star
    325
  • Rank 128,591 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created about 8 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An experimentation framework for Reinforcement Learning using OpenAI Gym, Tensorflow, and Keras.

OpenAI Lab GitHub release CircleCI Codacy Badge Codacy Badge GitHub stars GitHub forks


NOTICE: Please use the next version, SLM-Lab.


OpenAI Lab Documentation


An experimentation framework for Reinforcement Learning using OpenAI Gym, Tensorflow, and Keras.

OpenAI Lab is created to do Reinforcement Learning (RL) like science - theorize, experiment. It provides an easy interface to OpenAI Gym and Keras, with an automated experimentation and evaluation framework.

Features

  1. Unified RL environment and agent interface using OpenAI Gym, Tensorflow, Keras, so you can focus on developing the algorithms.
  2. Core RL algorithms implementations, with reusable modular components for developing deep RL algorithms.
  3. An experimentation framework for running hundreds of trials of hyperparameter optimizations, with logs, plots and analytics for testing new RL algorithms. Experimental settings are stored in standardized JSONs for reproducibility and comparisons.
  4. Automated analytics of the experiments for evaluating the RL agents and environments, and to help pick the best solution.
  5. The Fitness Matrix, a table of the best scores of RL algorithms v.s. the environments; useful for research.

With OpenAI Lab, we could focus on researching the essential elements of reinforcement learning such as the algorithm, policy, memory, and parameter tuning. It allows us to build agents efficiently using existing components with the implementations from research ideas. We could then test the research hypotheses systematically by running experiments.

Read more about the research problems the Lab addresses in Motivations. Ultimately, the Lab is a generalized framework for doing reinforcement learning, agnostic of OpenAI Gym and Keras. E.g. Pytorch-based implementations are on the roadmap.

Implemented Algorithms

A list of the core RL algorithms implemented/planned.

To see their scores against OpenAI gym environments, go to Fitness Matrix.

algorithm implementation eval score (pending)
DQN DQN -
Double DQN DoubleDQN -
Dueling DQN - -
Sarsa DeepSarsa -
Off-Policy Sarsa OffPolicySarsa -
PER (Prioritized Experience Replay) PrioritizedExperienceReplay -
CEM (Cross Entropy Method) next -
REINFORCE - -
DPG (Deterministic Policy Gradient) off-policy actor-critic ActorCritic -
DDPG (Deep-DPG) actor-critic with target networks DDPG -
A3C (asynchronous advantage actor-critic) - -
Dyna next -
TRPO - -
Q*(lambda) - -
Retrace(lambda) - -
Neural Episodic Control (NEC) - -
EWC (Elastic Weight Consolidation) - -

Run the Lab

Next, see Installation and jump to Quickstart.

Timelapse of OpenAI Lab

Timelapse of OpenAI Lab, solving CartPole-v0.

More Repositories

1

SLM-Lab

Modular Deep Reinforcement Learning framework in PyTorch. Companion library of the book "Foundations of Deep Reinforcement Learning".
Python
1,244
star
2

aiva

AIVA (A.I. Virtual Assistant): General-purpose virtual assistant for developers.
JavaScript
819
star
3

awesome-deep-rl

A curated list of awesome Deep Reinforcement Learning resources.
646
star
4

spacy-nlp

Expose Spacy nlp text parsing to Nodejs (and other languages) via socketIO
JavaScript
224
star
5

dokker

Dokker.js creates professional Javascript code documentations.
JavaScript
187
star
6

CGKB

Contextual Graph Knowledge Base
JavaScript
87
star
7

python

Python Style Guide
62
star
8

telegram-bot-bootstrap

A bootstrap for Telegram bot with deployable sample bot and JS-wrapped API methods.
JavaScript
45
star
9

robocup-soccer

A.I. Python project on RoboCup 2D Soccer Simulation League.
Python
31
star
10

lomath

Lomath is a tensorial math library extended from lodash, with performant math functions applicable to tensors(multi-arrays). It also has a standalone plotting module that using HighCharts and BrowserSync.
JavaScript
19
star
11

python-structure

Sample project structure for a python package.
Python
17
star
12

Risk-game

Implementation of the 2-player Risk game and the AI to play it, for Math 335 Probability project.
JavaScript
16
star
13

neo4jKB

A graph knowledge base implemented in neo4j.
JavaScript
12
star
14

nlp-time

NLP time parser for time, range, and cron pattern.
JavaScript
7
star
15

Machines

Turing Machines and their restrictions: DFA, NFA, PDA etc, implemented in JavaScript. The design is polymorphic to show the restrictions on Turing Machine.
JavaScript
6
star
16

psi-scraper

The Ion Cannon for scraper, with proxy, robust logic control, parallelization, Sequelize data model. Use with caution.
JavaScript
5
star
17

github-actions-self-hosted

Github Actions Self Hosted container Dockerfile
Dockerfile
5
star
18

reqscraper

Lightweight wrapper for Request and X-Ray JS.
JavaScript
4
star
19

torcharc

TorchArc: Build PyTorch networks by specifying architectures.
Python
3
star
20

Notes-on-AI-realization

Personal notes on possible AI realizations, from the perspective of Computer Science, Quantum physics, Mathematics, and Philosophy.
3
star
21

farming

Two engineers decide to become farmers
Python
2
star
22

k0s-cluster

Private Kubernetes cluster setup on a home lab using k0sctl and Helm charts.
Shell
2
star
23

SLM-Lab-doc

SLM Lab Gitbook Documentation
2
star
24

sheep-tinderbot

A tinder bot for a Sheep. Just for fun.
JavaScript
1
star
25

mnist-classifier

Simple MNIST classifier example using PyTorch Lightning.
Python
1
star
26

kengz.github.io

github page for kengz
HTML
1
star
27

ai-notebook

Experiments with A.I.
Python
1
star
28

awesome-dstack

A curated list of awesome dstack.ai resources
1
star
29

psi

The horsemen are getting back to work. New trading project psi - ψ.
JavaScript
1
star
30

openai_lab_doc_cn

Chinese version of the doc for OpenAI Lab https://github.com/kengz/openai_lab
JavaScript
1
star
31

poly-socketio

Polyglot SocketIO server that allows cross-language communication via JSON
JavaScript
1
star
32

lean-dl-example

Example of a lean deep learning project with a config-driven approach.
Python
1
star