PyTorch implementation of A3C for Atari games
Top 57.4% on sourcepulse
This repository provides an implementation of the Asynchronous Advantage Actor-Critic (A3C) algorithm in PyTorch, specifically tailored for Atari environments. It aims to significantly accelerate training times through a novel GPU-centric architecture called A3G, making it suitable for researchers and practitioners in reinforcement learning seeking faster experimentation and state-of-the-art performance on classic control tasks.
How It Works
The A3G architecture enhances A3C by assigning each agent its own network on a GPU, while the shared model resides on the CPU. Agents' models are rapidly converted to CPU for frequent, lock-free updates to the shared model, leveraging Hogwild! training principles. This asynchronous update mechanism drastically reduces training time, enabling convergence in minutes for some Atari games.
Quick Start & Requirements
pip install -r requirements.txt
python main.py --env PongNoFrameskip-v4 --workers 32
python main.py --env PongNoFrameskip-v4 --workers 32 --gpu-ids 0 1 2 3 --amsgrad
python gym_eval.py --env PongNoFrameskip-v4 --num-episodes 100
Highlighted Details
Maintenance & Community
The project appears to be a personal implementation by dgriff777, with no explicit mention of a broader community or ongoing maintenance beyond initial updates.
Licensing & Compatibility
The README does not explicitly state a license. Compatibility for commercial use or closed-source linking is not specified.
Limitations & Caveats
The project relies on older Python 2.7+ and may have compatibility issues with newer PyTorch versions. The README mentions that OpenAI Gym's Atari settings are more challenging than standard ALE due to stochastic frame skipping and action repetition. Removed trained models to reduce repo size.
2 years ago
1 day