Skip to main content

Async agents for Stable Baselines 3

Project description

Async Gym Agents

Wrapper environments and agent injectors to allow for drop-in async training.

import gymnasium as gym
from stable_baselines3 import TD3

from async_gym_agents.agents.async_agent import get_injected_agent
from async_gym_agents.envs.multi_env import IndexableMultiEnv

# Create env with 8 parallel envs
env = IndexableMultiEnv([lambda: gym.make("Pendulum-v1") for i in range(8)])

# Create the model, injected with async capabilities
model = get_injected_agent(TD3)("MlpPolicy", env)

# Train the model
model.learn(total_timesteps=10)

# Shut down workers
model.shutdown()

Multiprocessing

AsyncGymAgents is primarily designed for IO/Networking heavy situations and uses threads. For CPU-constrained applications, multiprocessing can be enabled using use_mp=True:

import gymnasium as gym
from async_gym_agents.agents.async_agent import get_injected_agent
from stable_baselines3 import PPO


def env_func():
    # return [gym.make("Pendulum-v1") for _ in range(4)]
    return gym.make("Pendulum-v1")


# Create env to define spaces
env = gym.make("Pendulum-v1")

# Create the model, injected with async capabilities
model = get_injected_agent(PPO, use_mp=True)("MlpPolicy", env, envs=[env_func for _ in range(8)])

Since not all envs can be transferred to processes, a constructor is required. This constructor allows returning a list of processes, run in threads within a single process. This allows, e.g., balancing the tradeoff between GIL and memory usage.

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

async_gym_agents-0.1.6.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

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

async_gym_agents-0.1.6-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file async_gym_agents-0.1.6.tar.gz.

File metadata

  • Download URL: async_gym_agents-0.1.6.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.10.8 Windows/10

File hashes

Hashes for async_gym_agents-0.1.6.tar.gz
Algorithm Hash digest
SHA256 ba09bfaf98851011f7d8ca1afd3249d5deb5a5a22075cbefd61eedc3fd0bd215
MD5 140f63dfada1d9b64331180c750ceb5f
BLAKE2b-256 5f610aabafc40a46e7e08e8e9ae8cd4b5ff22513b791fec4260749b97f9a4168

See more details on using hashes here.

File details

Details for the file async_gym_agents-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: async_gym_agents-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.10.8 Windows/10

File hashes

Hashes for async_gym_agents-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7c8c89c1f61ae1060e156a0b85033987493afd2704ad901c83858388db692785
MD5 8b87f45673301fb7be9f49f022bf8c9b
BLAKE2b-256 86ac2fd18494cd82fd7eec8a509f0025a352cdf8f6dcc8bf7d383c7151a41bdb

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