AI | ML/Reinforcement Learning

[Unity] ML-Agents 설치 및 테스트해보기

깜태 2021. 8. 13. 11:29
728x90

Unity 환경에서 강화학습을 시도해보고자 ML-Agents 설치 및 테스트를 진행해봤다.

 

이 때, 기본적으로 Unity와 Python이 설치되었다는 전제로 진행한다.

 

Unity 환경은 20.3.15 LTS 버전으로 진행하였고, Python은 Anaconda 기반 3.8버전으로 진행하였다.

 

1. 유니티 ml-agents 홈페이지에 들어간다 https://github.com/Unity-Technologies/ml-agents

 

GitHub - Unity-Technologies/ml-agents: Unity Machine Learning Agents Toolkit

Unity Machine Learning Agents Toolkit. Contribute to Unity-Technologies/ml-agents development by creating an account on GitHub.

github.com

 

2. 설치하는 방식에 따라 다를 수 있다.

zip 파일로 파일 통째로 받는 방법과 명령어로 진행하는 방법이 있는데 나는 후자로 진행하였다. (차이는 없음)

 

자세한 설명은 https://github.com/Unity-Technologies/ml-agents/blob/release_18_docs/docs/Installation.md
사이트에 있지만 이 글을 쓰게 된 이유도 조금 이해하기 어려웠기 때문이다.

 

GitHub - Unity-Technologies/ml-agents: Unity Machine Learning Agents Toolkit

Unity Machine Learning Agents Toolkit. Contribute to Unity-Technologies/ml-agents development by creating an account on GitHub.

github.com

현재 지원하는 버전들은 아래와 같은데, 나는 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을 변경해 학습된 가중치로 적용한다.

 

728x90