OpenAIGymAPI.jl

A Julia package providing access to the OpenAI Gym API
Author JuliaML
Popularity
7 Stars
Updated Last
1 Year Ago
Started In
March 2017

OpenAIGymAPI.jl

Wrapper for the OpenAI Gym API. For the official JuliaML OpenAIGym wrapper please see OpenAIGym.jl.

Package Status Package Evaluator Build Status
Project Status: WIP - Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. License OpenAIGymAPI OpenAIGymAPI Build Status Build status codecov

Introduction

OpenAI Gym is a open-source Python toolkit for developing and comparing reinforcement learning algorithms. This Julia package is a wrapper for the OpenAI Gym API, and enables access to an ever-growing variety of environments.

Installation

This package is registered in METADATA.jl and can be installed as usual

Pkg.add("OpenAIGymAPI")
using OpenAIGymAPI

If you encounter a clear bug, please file a minimal reproducible example on Github.

Setting up the server

To download the code and install the requirements, you can run the following shell commands:

git clone https://github.com/openai/gym-http-api
cd gym-http-api
pip install -r requirements.txt

This code is intended to be run locally by a single user. The server runs in python.

To start the server from the command line, run this:

python gym_http_server.py

For more details, please see here: https://github.com/openai/gym-http-api.

Overview

using OpenAIGymAPI

remote_base = "http://127.0.0.1:5000"
client = GymClient(remote_base)
print(client)

# Create environment
env_id = "CartPole-v0"
instance_id = env_create(client, env_id)
print(instance_id)

# List all environments
all_envs = env_list_all(client)
print(all_envs)

# Set up agent
action_space_info = env_action_space_info(client, instance_id)
print(action_space_info)
agent = action_space_info["n"] # perform same action every time

# Run experiment, with monitor
outdir = "/tmp/random-agent-results"
env_monitor_start(client, instance_id, outdir, force = true, resume = false)

episode_count = 100
max_steps = 200
for i in 1:episode_count
  ob = env_reset(client, instance_id)
  done = false
  j = 1
  while j <= 200 && !done
    action = env_action_space_sample(client, instance_id)
    results = env_step(client, instance_id, action, render = true)
    done = results["done"]
    j = j + 1
  end
end

# Dump result info to disk
env_monitor_close(client, instance_id)

License

This code is free to use under the terms of the MIT license.

Acknowledgements

The original author of OpenAIGymAPI is @Paul Hendricks. Gratipay