ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 강화학습 - Unity, Anaconda, ml-agents 환경설정 - 2
    전공 - IT/졸업작품 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

    '전공 - IT > 졸업작품' 카테고리의 다른 글

    강화학습 - Unity, Anaconda, ml-agents 환경설정 - 1  (0) 2023.09.16
    Contiki 2.7 - VMWare 에 설치하기, 저장공간 확보  (0) 2023.08.22
    Chapter 6  (0) 2023.08.01
    Chapter 5  (0) 2023.07.31
    Ubuntu(22.04) - Contiki 설치하기  (0) 2023.07.29
Designed by Tistory.