Skip to main content

Atari Reinforcement Learning with Stable-Baselines3 & RL Zoo

This project provides a streamlined setup for training and evaluating reinforcement learning agents on Atari 2600 games. It is based on the workflow demonstrated in this YouTube tutorial and uses a collection of simple shell scripts to manage common tasks like training, evaluation, and video recording.

The core of the project leverages powerful libraries like Stable-Baselines3 and RL-Baselines3-Zoo to do the heavy lifting.

https://github.com/user-attachments/assets/68943893-f0ef-4e58-8dbb-88a6ae038560

✨ Key Features

  • Cross-Platform Workflow: Simple Python scripts (train.py, enjoy.py and record-video.py) to abstract away complex commands and ensure compatibility across platforms.
  • Powered by RL Zoo: Leverages the robust framework of rl-zoo3 for training, evaluation, and hyperparameter management.
  • Easy to Customize: Scripts can be easily modified to train on different Atari games or with different RL algorithms.

🚀 Installation

The recommended way to install this tool is directly from PyPI:

pip install atari-reinforcement-learning

This will make the atari-rl command available in your environment.

[!CAUTION] Atari ROMs: This project uses ale-py to automatically download and install the necessary Atari ROMs during the dependency installation process. By proceeding with the installation, you are confirming that you have the legal right to use these ROMs.

🎮 Usage

Train a New Agent

To start training an agent from scratch, run the training script. This will save logs and the trained model in the logs/ directory.

atari-rl train

Resume Training

If a training session was interrupted, you can resume from the last saved checkpoint.

atari-rl train --resume

Watch the Agent Play

Once you have a trained model, you can watch it play the game. This script will load the best-performing model from your training history.

atari-rl enjoy

[!TIP] To watch a specific experiment, add --exp-id n, where n is the experiment number.

Record a Video

To save a video of your agent playing, use the recording script. The video will be saved in a videos/ folder inside the corresponding log directory.

atari-rl record-video

[!TIP] You can also specify the experiment ID with --exp-id n and the output format with --format <svg|mp4|all>.

🛠️ Developer Setup

If you want to contribute to the project or modify the code, follow these steps to set up a development environment.

  1. Clone the repository

    git clone https://github.com/CosmicDNA/atari-reinforcement-learning.git
    cd atari-reinforcement-learning
    
  2. Create and activate a virtual environment

    python -m venv .venv
    source .venv/bin/activate
    # On Windows, use: .venv\Scripts\activate
    
  3. Install in editable mode with development dependencies This installs the package in a way that your code changes are immediately reflected, and includes tools like ruff and pytest for development.

    • Using uv (recommended for speed):
      pip install uv
      uv pip install -e ".[dev]"
      
    • Using pip:
      pip install -e ".[dev]"
      

🔧 Customization & Configuration

This tool uses a .env file in your current working directory to manage experiment configurations. This allows you to maintain separate configurations for different experiments in different folders.

How it Works

When you run any atari-rl command for the first time in a new directory, the tool will automatically create a .env file for you with default settings.

To customize an experiment, simply edit the values in this .env file. For example, to train a DQN agent on Pong, you would modify your .env file like this:

ALGO="dqn"
ENV="ALE/Pong-v5"

🤝🏿 Acknowledgements

This project stands on the shoulders of the following giants:

  • RL Baselines3 Zoo: A Training Framework for Stable Baselines3 Reinforcement Learning Agents.
  • Gymnasium: A Python library for developing and comparing reinforcement learning algorithms.
  • PyTorch: An open-source machine learning framework that accelerates the path from research prototyping to production deployment.
  • The Arcade Learning Environment: A simple framework that allows researchers and hobbyists to develop AI agents for Atari 2600 games.
  • OpenCV: Pre-built CPU-only OpenCV packages for Python.

Release files for atari-reinforcement-learning 1.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for atari-reinforcement-learning 1.0.7
File Size Uploaded
atari_reinforcement_learning-1.0.7.tar.gz 13.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for atari-reinforcement-learning 1.0.7
File Interpreter ABI Platform
atari_reinforcement_learning-1.0.7-py3-none-any.whl Python 3 none any Details

Total release size:28.5 kB

Release files / atari_reinforcement_learning-1.0.7.tar.gz

Download URL atari_reinforcement_learning-1.0.7.tar.gz
Size 13.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ae1e113bee8b1450e883b7a923f3e7cb6751273e792c308842ae63ce1fe4056b
BLAKE2b-256 checksum
How to use checksums
1e96c76a25ed4efd43b417d026fdb3b51560869d2e687fe3faaf919d11e2fe7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2025.

Transparency log

Release files / atari_reinforcement_learning-1.0.7-py3-none-any.whl

Download URL atari_reinforcement_learning-1.0.7-py3-none-any.whl
Size 15.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d083f1cde63a5ef573bc207360256f05da978045171b06201b0285422566ad44
BLAKE2b-256 checksum
How to use checksums
4dd1f3a84dd706dcc6c50d99e6268aa1d2eaa28c63c78950dcddce8d498c3ee3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 18, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.7 This release

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page