Skip to main content

A simple and ubiquitous transition recorder wrapper for Gym Environments to facilitate offline reinforcement learning dataset manufacturing.

Project description

Transition Recorder Wrapper for Gym Environments

A simple and ubiquitous transition recorder wrapper for Gym Environments to facilitate offline Reinforcement Learning (RL) dataset manufacturing. Transitions (observations, actions, rewards, dones & infos) and episodes (set of transitions) are buffered with LZ4 compression and each episode is saved as a JSON line (.jsonl). Output files may be further processed to be compatible with offline RL libraries like Ray RLlib (see Usage).

Requirements

  • Python >= 3.6
  • Pypi packages: pip install -r requirements.txt

Usage

Simply import & wrap your Gym environment:

import gym
from gym_recorder import TransitionRecorderWrapper  # import the wrapper

env = gym.make("CartPole-v1")
env = TransitionRecorderWrapper(env)  # wrap your environment
env.reset()

# Use your environment as you would
while True:
    env.render()
    action = env.action_space.sample()
    obs, reward, done, info = env.step(action)
    if done:
        env.reset()

You may also use the save_folder option to customize where the transitions are saved, min_transitions_per_file to customize the output file size, and disable compression with the compress option.

Conversion

The generated .jsonl files may be further processed to be used by offline RL libraries like Ray RLlib. To convert a .jsonl dataset generated by the wrapper to a RLlib offline dataset you may run the following command:

python -m gym_recorder.converters.ray -i data/raw -o data/ray

More options can be found with python -m gym_recorder.converters.ray --help.

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

gym-recorder-0.0.3.tar.gz (3.0 kB view hashes)

Uploaded Source

Built Distribution

gym_recorder-0.0.3-py3-none-any.whl (3.0 kB view hashes)

Uploaded Python 3

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