전공 - IT/졸업작품

강화학습 - Unity, Anaconda, ml-agents 환경설정 - 2

잉카콜라 2023. 9. 16. 11:47

 

ml-agents를 이용하여 강화학습을 진행하기 위해 Unity, Anaconda, ml-agents를 설치했다

1편에서는 Unity, Anaconda 설치과정을 작성하고 2편에서는 ml-agents 관련내용을 작성했다

 

설치환경은 M1 MacBook Air 이며 Unity, Anaconda는 맥북에, ml-agents는 usb에 설치를 했다

 

 

!! 만약 usb와 같이 외부환경에 ml-agents를 설치할경우 대소문자 구분이 없어야 정상적으로 실행이 가능하다  !!

 

디스크 유틸리티에서 설치전에 대소문자 구분 관련내용을 확인하고 진행해야한다

 

https://ruang0124.tistory.com/292

 

USB 포맷 변경하기 ( 윈도우, 맥 호환)

파일을 다운받는데 4기가 이상 다운이 안 돼서 usb의 포맷을 변경했다 usb에 연결된상태로 디스크 유틸리티 클릭 설정할 수 있는 파일 형식에 대한 내용은 대충 위와 같다 나는 윈도우, 맥 호환가

ruang0124.tistory.com

 

 

 1. ml-agents 파일 설치하기 

터미널을 실행한 뒤 내가 설치하고자 하는 위치로 이동한다

설치위치에서 ml-agents파일을 설치한다

cd 설치하고자 하는 폴더의 위치
( 위 사진은 usb에 있는 cosmos라는 폴더이다 )

git clone --branch release_20 https://github.com/Unity-Technologies/ml-agents.git
( 2023.09.16 기준으로 release_20 버전이다 )

 

 

 2. anaconda를 이용해서 가상환경 생성하기 

설치가 완료되면 ml-agents 폴더로 이동

이동후에 conda 명령어를 사용하여 가상환경을 생성한다

cd ml-agents

conda create -n 가상환경 이름 python=3.9

 

진행할것인지 묻는데 y 입력해서 진행한다

다음으로 생성한 가상환경을 활성화시키고 ml-agents 실행에 필요한 파일을 설치한다

conda activate cosmos1
( 가상환경이 활성화되면 (base) 가 (가상환경이름) 으로 변경되었음을 볼 수 있다 )

pip install torch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1
( Pytorch 설치 -> 최신버전과는 호환성 문제가 있어서 이전버전으로 설치하면 좋다 )

 

 

 3. ml-agents 실행관련 파일 설치 

가상환경에서 위의 명령어를 입력후 실행한다

brew install hdf5

export HDF5_DIR=/opt/homebrew/Cellar/hdf5/1.14.1/

pip install --no-binary=h5py h5py
( 위의 명령어는 설치에 실패했지만 문제되지않아서 계속 진행했다 )

 

ml-agents라는 폴더로 들어가면 setup.py 라는 파일이 있다

수정할 내용이 있으므로 setup.py를 열어준다

cd ml-agents

vi setup.py

 

쭉 내려가면 위에 초록색으로 되어있는 부분이 보인다

 

기존에 있는 내용은 앞에 # 을 추가하고 바로 아래줄에 아래의 내용을 추가해서 위와 같이 수정해준다

"torch>=1.8.0,<=2.0.1;(platform_system!='Windows' and python_version>='3.9')",

i를 누르면 수정모드로 변경되고 ESC 키를 누르면 보기모드로 변경된다
수정이 완료되었으면 보기모드에서 :wq 입력한뒤 엔터로 창을 닫아주면 된다

 

다시 상위 폴더로 올라가서 추가적으로 설치를 진행한다

 

 

시간이 지나서 설치할경우 버전관련 문제가 생길 수 있으므로 에러가 발생한다면 버전을 수정해서 설치하면 될거같다

cd ..

pip install -e ./ml-agents-envs

pip install -e ./ml-agents

pip install --upgrade "protobuf<=3.20.1"

conda install grpcio

 

 

 4. Unity 예제 실행하기 

설정에 Project location을 지정해준다

( 나중에 Project를 새로 생성하면 이 경로로 저장이 된다 )

 

지금은 Unity 에서 기본으로 제공해주는 예제를 대상으로 실행할 예정이다

Open 버튼을 누른 뒤 ml-agents -> Project 선택 

 

예제 파일이 학습된 버전이 설치되어 있지 않아서 설치하라는 경고창이 나타난다

무시하고 현재 설치된 버전으로 진행한다

 

현재 설치된 버전으로 진행

( 과거의 버전을 추가적으로 설치해서 진행해도 괜찮아요 )

 

버전이 맞지 않는다는 경고창이 나타나지만 무시하고 진행

 

위와 같이 초기화면이 나타난다

 

Asset -> ML-Agents -> Examples -> 3DBall -> Scenes -> 3DBall 을 선택

위에 재생버튼을 누르면 학습이 완료된 예제를 실행할 수 있다

 

 

 5. Unity 학습 하기 

이번에는 내가 처음부터 학습을 시켜보기로 했다

Asset -> ML-Agents -> Examples -> 3DBall -> Prefabs -> 3DBall 선택

왼쪽상단에 Agent를 클릭하면 오른쪽에 세부정보가 표시된다

오른쪽 중간부분에 파란색으로 선택되어있는 Model을 None으로 설정한다

 

학습은 ml-agents/config/ppo/3DBall.yaml 파일을 이용해서 진행한다

mlagents-learn config/ppo/3DBall.yaml --run-id=폴더 이름 입력

--run-id= 폴더 이름 입력
이 부분은 내가 학습할 내용이 저장되므로 폴더이름은 중복되면 오류가 발생한다

 

Unity 에서 실행버튼을 누르면 위와 같이 학습한 내용이 실시간으로 반영된다

 

cosmosTest1 폴더로 이동하면 3DBall.onnx 로 되어있는 학습된 결과 파일이 있다

ml-agents/results/파일이름/3DBall.onnx

 

위에서 학습완료된 파일을 복사한 뒤 위의 경로에 붙여넣으면 학습모델을 확인할 수 있다

ml-agents/Project/Assets/ML-Agents/Examples/3D Ball/TFModels

 

학습모델 붙여넣기 전의 모습

 

학습모델 붙여넣은 후의 모습

 

 

+ 추가

Anaconda 에서 보면 위와 같이 cosmos1 이라는 내가 생성한 가상환경이 생성되었음을 확인할 수 있다

 

 

728x90