Skip to main content

A collection of Reinforcement Learning algorithms to train autonomous agents in different environments.

Project description

EnvQuest

Train and evaluate your autonomous agents in different environments using a collection of RL algorithms.

Installation

To install the EnvQuest library, use pip install envquest.

Usage

Run a simple gym environment

from envquest import envs, agents

# Instantiate an environment
env = envs.gym.GymEnvironment.from_task("LunarLander-v3")

# Instantiate an agent
agent = agents.generics.RandomAgent(env.observation_space, env.action_space)

# Execute an MDP
timestep = env.reset()

while not timestep.last():
    observation = timestep.observation
    action = agent.act(observation=observation)
    timestep = env.step(action)

# Render the environment
frame = env.render(256, 256)

Usage with metaworld

import metaworld
import random

from envquest import envs

ml1 = metaworld.ML1("basketball-v2")
task = random.choice(ml1.train_tasks)
env = ml1.train_classes["basketball-v2"](render_mode="rgb_array")
env.set_task(task)

env = envs.gym.GymEnvironment.from_env(env)

Train a DQN Agent in a gym environment

First, set up a WandB logging environment

# Install wandb
pip install wandb

# Start a wandb local server
wandb server start

Then, train a DQN agent in a gym's CartPole-v1 environment.

from envquest import arguments, envs, agents, trainers

# Define training arguments
args = arguments.TrainingArguments(
    env=arguments.EnvArguments(task="CartPole-v1"),
    agent=arguments.DQNAgentArguments(), 
    logging=arguments.LoggingArguments(save_agent_snapshots=False)
)

# Instantiate an environment
env = envs.gym.GymEnvironment.from_task(task=args.env.task, max_episode_length=args.env.max_episode_length)

# Instantiate a DQN Agent
agent = agents.dqn_agents.DiscreteQNetAgent(
    mem_capacity=args.agent.mem_capacity,
    discount=args.agent.discount,
    n_steps=args.agent.n_steps,
    lr=args.agent.lr,
    tau=args.agent.tau,
    eps_start=args.agent.eps_start,
    eps_end=args.agent.eps_end,
    eps_step_duration=args.agent.eps_step_duration,
    eps_decay=args.agent.eps_decay,
    observation_space=env.observation_space,
    action_space=env.action_space,
)

# Instantiate a trainer
trainer = trainers.offline_trainers.OfflineTrainer(env, agent, args)

# Start training
trainer.train()

Track the performances of your agent on wandb: http://localhost:8080/

Examples

See some examples in the examples folder.

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

envquest-0.0.9.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

envquest-0.0.9-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file envquest-0.0.9.tar.gz.

File metadata

  • Download URL: envquest-0.0.9.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for envquest-0.0.9.tar.gz
Algorithm Hash digest
SHA256 27a43d7ece72dc584ef58669016759a92c8ff924c9c8c056d91a1067e7f6bf93
MD5 db7c96238d15b8c0c34dc775b40055d6
BLAKE2b-256 533efb5416305bb3da968b01fe9c8bd45fe569aa802ab03e1b26ea144cb136a1

See more details on using hashes here.

File details

Details for the file envquest-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: envquest-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 21.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for envquest-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 edd964810a66891158aa3c44158461c4160069fe1af514a52234e80c7d3ba1f3
MD5 7fb416d89bc72e5757af93c668a5c658
BLAKE2b-256 baa4f4d488c928ddf3ef81c98edd3204d30822e52d9efc47dbf436f21e88f6f9

See more details on using hashes here.

Supported by

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