README_English.md 2.0 KB
Newer Older
Z
zenghsh3 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
# Reproduce DQN, DoubleDQN, DuelingDQN model with fluid version of PaddlePaddle

+ DQN in:
[Human-level Control Through Deep Reinforcement Learning](http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html)
+ DoubleDQN in:
[Deep Reinforcement Learning with Double Q-Learning](https://www.aaai.org/ocs/index.php/AAAI/AAAI16/paper/viewPaper/12389)
+ DuelingDQN in:
[Dueling Network Architectures for Deep Reinforcement Learning](http://proceedings.mlr.press/v48/wangf16.html)

# Atari benchmark & performance
## [Atari games introduction](https://gym.openai.com/envs/#atari)

+ Pong game result
![DQN result](assets/dqn.png)

# How to use
+ Dependencies:
    + python2.7
    + gym
    + tqdm
    + opencv-python
    + paddlepaddle-gpu>=0.12.0
    + ale_python_interface

+ Install Dependencies:
    + Install PaddlePaddle
    Recommended to compile and install PaddlePaddle from source code
    + Install other dependencies:
    ```
    pip install -r requirement.txt 
    pip install gym[atari]
    ```
    Install ale_python_interface, can reference:https://github.com/mgbellemare/Arcade-Learning-Environment


+ Start Training:
    ```
    # To train a model for Pong game with gpu (use DQN model as default)
    python train.py --rom ./rom_files/pong.bin --use_cuda

    # To train a model for Pong with DoubleDQN
    python train.py --rom ./rom_files/pong.bin --use_cuda --alg DoubleDQN

    # To train a model for Pong with DuelingDQN
    python train.py --rom ./rom_files/pong.bin --use_cuda --alg DuelingDQN
    ```

    To train more games, can install more rom files from [here](https://github.com/openai/atari-py/tree/master/atari_py/atari_roms)

+ Start Testing:
    ```
    # Play the game with saved best model and calculate the average rewards
    python play.py --rom ./rom_files/pong.bin --use_cuda --model_path ./saved_model/DQN-pong

    # Play the game with visualization
    python play.py --rom ./rom_files/pong.bin --use_cuda --model_path ./saved_model/DQN-pong --viz 0.01
    ```