Creative-Chan

[RL] OpenAI Baselines 설치하기 본문

Machine Learning/Reinforcement Learning

[RL] OpenAI Baselines 설치하기

Creative.Chan 2022. 4. 13. 15:54

목차

    1. OpenAI Baselines이란?

    OpenAI Baselines는 OpenAI에서 제공하는 강화학습 알고리즘 라이브러리이다.

    연구자들에게 복제, 개선, 새로운 아이디어 도출을 하기 위해 제공되고 있다.

    내부에는 주요한 RL 알고리즘 10개가 포함되어 있다.

    A2C ACER ACKTR DDPG DQN GAIL HER PPO1 PPO2 TRPO

    위의 알고리즘들은 추후에 논문 리뷰를 다시 해보고자 한다.

    본 글에서는 간단한 TensorFlow 2 환경에서의 OpenAI Baselines 설치와 예제를 실행해보고자 한다.

    2. Baselines 설치

    위의 링크는 Baselines의 Github Repository이다.

    Baselines는 본래 TensorFlow 1.14 버전에 맞게 제작된 라이브러리이기 때문에 TensorFlow 2는 지원되지 않는다.

    그래서 하위 Branch에 TensorFlow 2가 지원되는 라이브러리를 따로 제공하고 있다.

    https://github.com/openai/baselines/tree/tf2

    • 본인은 TensorFlow가 설치되어 있는 Ubuntu 18.04 기준으로 설치 방법을 정리한다.
    1. Baselines는 Python3(>=3.5)를 요구하며, CMake, OpenMPI, zlib 패키지가 필요하다.

    따라서 다음 명령어를 통해 패키지들을 설치해준다.

    sudo apt-get update && sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-dev
    
    1. Baselines repository를 git clone 한다.
    git clone -b tf2 --single-branch <https://github.com/openai/baselines.git>
    cd baselines
    
    1. Baselines를 설치한다.
    pip install -e .
    
    1. pytest runner를 통해 테스트한다.
    pip install pytest
    pytest
    
    • 본인의 경우 실행시 atary_py 모듈이 없다고 에러가 났다.

    4-1. atary 환경을 설치한다.

    pip install gym[atari]
    
    • 설치해도 ROM 관련 문제가 발생했다.

    4-2. https://github.com/openai/atari-py#roms에 접속하여 Roms.rar을 다운받아 압축을 푼다.

    그리고 ROM을 atari에서 활용할수 있도록 한다.

    python -m atari_py.import_roms <path to folder>
    

    이렇게 했는데 다음과 같은 에러가 발생했다. AttributeError: 'EnvSpec' object has no attribute 'entry_point’

    이를 해결하기 위해 gym을 0.14로 재설치하였다.

    pip install gym==0.14
    

    그리고 AttributeError: module 'gast' has no attribute 'Index’ 에러가 발생하여 gast를 0.3.3 버전으로 재설치 하였다.

    pip install gast==0.3.3
    

    이렇게 하니 pytest가 잘 작동하였고, baseline 실행이 잘 됨을 확인하였다.

    3. 예제

    1. DQN on Atari

    python -m baselines.run --alg=deepq --env=PongNoFrameskip-v4 --num_timesteps=1e6

    2. PPO2 on Atari (Visualizing model)

    python -m baselines.run --alg=ppo2 --env=PongNoFrameskip-v4 --num_timesteps=2e7 --save_path=~/models/pong_20M_ppo2 --log_path=~/logs/Pong/

    - 스텝마다 로그를 출력한다.

    'Machine Learning > Reinforcement Learning' 카테고리의 다른 글

    MuJoCo 2.1.5 설치  (0) 2022.04.20
    JupyterLab에서 OpenAI Gym, MuJoCo 화면 출력  (1) 2022.04.20
    MuJoCo와 mujoco-py 설치  (0) 2022.04.13
    Comments