Unity 환경에서 강화학습을 시도해보고자 ML-Agents 설치 및 테스트를 진행해봤다.
이 때, 기본적으로 Unity와 Python이 설치되었다는 전제로 진행한다.
Unity 환경은 20.3.15 LTS 버전으로 진행하였고, Python은 Anaconda 기반 3.8버전으로 진행하였다.
1. 유니티 ml-agents 홈페이지에 들어간다 https://github.com/Unity-Technologies/ml-agents
2. 설치하는 방식에 따라 다를 수 있다.
zip 파일로 파일 통째로 받는 방법과 명령어로 진행하는 방법이 있는데 나는 후자로 진행하였다. (차이는 없음)
자세한 설명은 https://github.com/Unity-Technologies/ml-agents/blob/release_18_docs/docs/Installation.md
사이트에 있지만 이 글을 쓰게 된 이유도 조금 이해하기 어려웠기 때문이다.
현재 지원하는 버전들은 아래와 같은데, 나는 18버전으로 진행하였다.
3. 다운받고자 하는 폴더에 아래의 명령어를 입력하면, ml-agents라는 폴더가 생성되는 것을 볼 수 있다.
git clone --branch release_18 https://github.com/Unity-Technologies/ml-agents.git
4. Unity를 실행시켜 위의 ml-agents/Project 폴더를 추가하여 실행한다.
5. Package Manager에서 ml-agents 패키지를 추가한다.
1) Windows -> Package Manager 를 클릭한다.
2) 아래의 그림대로 실행한다.
3) com.unity.ml-agents 폴더 내 package.json 을 불러와 읽는다.
4) 정상적으로 읽어졌다면, 6번의 Package Manager에서 ML-agents 버전이 추가된 것을 볼 수 있다.
6. pip 명령어를 이용해 mlagents 를 설치한다. ( release 버전에 따라 맞춰서 설치 )
python -m pip install mlagents==0.27.0
7. 다시 유니티로 돌아와 아래의 Scene을 더블 클릭한다. (나의 경우는 3DBall을 예로 들어 진행하였다)
결과로 유니티 화면에서 위와 같이 나오는 걸 볼 수 있다.
8. Game 버튼 클릭 후, 재생 버튼을 클릭하면 실행되는 예시를 볼 수 있다.
여기까지가 미리 만들어진 ML-Agents 예제를 실행하는 것이였고,
그 다음으로 학습에 대한 예제를 실행해봤다.
1. cmd 창을 실행한다 (Anaconda의 경우는 Anaconda Prompt 실행)
2. ml-agent 가 설치된 폴더로 이동해 아래의 명령어를 입력하고, 게임을 실행한다.
mlagents-learn config/ppo/3DBall.yaml --run-id=first3DBallRun
학습된 가중치는 ml-agents/result/first3DBallRun[폴더명] 에서 onnx 확장자 파일로 있다.
3. 파일을 위에서 언급한 3DBall/TFModels 폴더로 이동시킨다. (안해도 상관은 없으나, 경로를 일일이 찾기 귀찮음)
4. Agent를 클릭해 Model을 변경해 학습된 가중치로 적용한다.
'AI | ML > Reinforcement Learning' 카테고리의 다른 글
[ML-Agent] Unity 게임을 gym.Env 환경으로 변경 (0) | 2021.09.03 |
---|---|
pyMARL 구조 분석 + COMA 코드 분석 (0) | 2021.08.23 |
[RL] Stable-baselines3 모델 커스터마이징 (10) | 2021.08.02 |
[RL] stable-baselines3 학습 커스터마이징해보기 (0) | 2021.07.30 |
[RL] Windows 환경에서 Ray 설치 및 실행하기 (0) | 2021.07.29 |