This is an attempt to implement the A3C algorithm in paper Asynchronous Methods for Deep Reinforcement Learning.
Author: Junyuan Xie (@piiswrong)
The algorithm should be mostly correct. However I cannot reproduce the result in the paper, possibly due to hyperparameter settings. If you can find a better set of parameters please propose a pull request.
Note this is a generalization of the original algorithm since we use batch_size threads for each worker instead of the original 1 thread.
pip install gympip install gym[atari]pip install flaskpip install opencv-pythonrun python a3c.py --batch-size=32 --gpus=0 to run training on gpu 0 with batch-size=32.
run python launcher.py --gpus=0,1 -n 2 python a3c.py to launch training on 2 gpus (0 and 1), each gpu has two workers. Note: You might have to update the path to dmlc-core in launcher.py.