Skip to main content

reinforcement learning for practitioners.

Project description

Reinforcement Learning for Practitioners (v1.2, 19Q4)

Travis_Status License

Status: under active development, breaking changes may occur. Release notes.

EasyAgents logo

EasyAgents is a high level reinforcement learning api focusing on ease of use and simplicity. Written in Python and running on top of established reinforcement learning libraries like tf-Agents, tensorforce or keras-rl. Environments are implemented in OpenAI gym.

In collaboration with Oliver Zeigermann.

Features

  • provides the same, simple api across all libraries. Thus you can easily switch between different implementations and you don't have to learn for each of them a new api.
  • to create and run any algorithm you only need 2 lines of code, all the parameters are named consistently across all algorithms.
  • supports a broad set of different algorithms
  • runs inside jupyter notebooks as well as stand-alone, easy to install requiring only a single 'pip install'.
  • easy to understand, ready-made plots and logs to investigate the algorithms and environments behaviour

Try it on colab

Scenario: simple

from easyagents.agents import PpoAgent
from easyagents.callbacks import plot

ppoAgent = PpoAgent('CartPole-v0')
ppoAgent.train([plot.State(), plot.Loss(), plot.Rewards()])

Scenario_Simple

Scenario: more detailed

from easyagents.agents import PpoAgent
from easyagents.callbacks import plot

ppoAgent = PpoAgent( 'Orso-v1',fc_layers=(500,500,500))
ppoAgent.train([plot.State(), plot.Loss(), plot.Rewards(), plot.Actions(), 
                plot.StepRewards(), plot.Steps(), plot.ToMovie()], 
                learning_rate = 0.0001, num_iterations = 500, max_steps_per_episode=50 )

Scenario_Detailed

Available Algorithms and Backends

algorithm tf-Agents tensorforce keras-rl easyagents class name
CEM not available not available yes CemAgent
Dqn yes yes yes DqnAgent
Double Dqn open not available yes DoubleDqnAgent
Dueling Dqn not available not available yes DuelingDqnAgent
Ppo yes yes not available PpoAgent
Random yes yes not available RandomAgent
REINFORCE yes yes not available ReinforceAgent
SAC preview not available not available SacAgent

[191001]

  • if you are interested in other algorithms, backends or hyperparameters let us know by creating an issue. We'll try our best to support you.
  • keras-rl is not compatible with tensorflow eager execution mode. Thus keras-rl based agents should run in a different python / jupyter notebook instance than tf-agents or tensorforce based agents.

Guiding Principles

  • easily train, evaluate & debug policies for (you own) gym environment over "designing new algorithms"
  • simple & consistent over "flexible & powerful"
  • inspired by keras:
    • same api across all algorithms
    • support different implementations of the same algorithm
    • extensible (pluggable backends, plots & training schemes)

Installation

Install from pypi using pip:

pip install easyagents

Documentation

release notes, class diagram

EasyAgents may not be ideal if

  • you would like to leverage implementation specific advantages of an algorithm
  • you want to do distributed or in parallel reinforcement learning

Note

  • This repository is under active development and in an early stage. Thus any- and everything may (and probably should) change.
  • If you have any difficulties in installing or using easyagents please let us know by creating an issue. We'll try our best to help you.
  • Any ideas, help, suggestions, comments etc in python / open source development / reinforcement learning / whatever are more than welcome. Thanks a lot in advance.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyagents-1.2.2.zip (65.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page