Mac에서 Unity ML-Agents 환경 구축(v0.9.1 지원)

17140 단어 ML-AgentsMacUnity
유니티에 ML-Agents라는 라이브러리가 있는데 머신러닝을 이용해서 2019/08/02에 v0.9.0(beta)을 발표했어요. 그래서 해봤어요.
Release ML-Agents Beta 0.9.0 · Unity-Technologies/ml-agents
https://github.com/Unity-Technologies/ml-agents/releases/tag/0.9.0
확인하는 과정에서 v0.9.1(beta)이 발표되었다(땀)
Release ML-Agents Beta 0.9.1 · Unity-Technologies/ml-agents
https://github.com/Unity-Technologies/ml-agents/releases/tag/0.9.1
Unity ML-Agents에 대해서는 다음을 참조하십시오.
[Unity] Unity에서 기계의'ML-Agent'를 배우고 얻은 지식과 견해를 많이 해봤어요.
http://tsubakit1.hateblo.jp/entry/2018/02/18/233000
Unity가 아직 설치되지 않은 사람은 아래를 참조하십시오.
Mac에서 homebrew를 사용하여 Unity 설치(Unity Hub, 일본어 지원)
https://qiita.com/kai_kou/items/445e614fb71f2204e033

단계


기본적으로 정부의 다음 문서에 따라 하면 된다.
ml-agents/Installation.md at master · Unity-Technologies/ml-agents
https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation.md
ml-agents/Basic-Guide.md at master · Unity-Technologies/ml-agents
https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md#setting-up-ml-agents-within-unity

Python 설치


현재 Python3.6에서 작업을 지원합니다.3.5, 3.7은 지원되지 않습니다.(2019/08/09 현재)
ml-agents/Installation.md at master · Unity-Technologies/ml-agents
https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation.md
In order to use ML-Agents toolkit, you need Python 3.6.
Download and install Python 3.6 if you do not already have it.
We do not currently support Python 3.7 or Python 3.5.
Python 환경이 없는 사람은 다음을 참조하십시오.
Mac에서 anyenv를 사용하여 Python 환경 구축 (bash,fish 대응) - Qiita
https://qiita.com/kai_kou/items/f54931991a781b96bb9c

ML-Agents 저장소 다운로드


저장소를 적절한 디렉토리로 다운로드합니다.
> mkdir 適当なディレクトリ
> cd 適当なディレクトリ
> git clone https://github.com/Unity-Technologies/ml-agents.git

필요한 라이브러리 설치


pip를 사용하여 PyPI에서 ML-Agents 패키지를 설치합니다.
여기서 Python의 가상 환경을 만들고 설치합니다.
가상 환경?그게 뭐야?아래 (다시 게재) 를 참조하십시오.
https://qiita.com/kai_kou/items/f54931991a781b96bb9c
> pyenv local 3.6.6
> python --version

Python 3.6.6


> python -m venv venv
> . venv/bin/activate

# fishな方はこちら
> . venv/bin/activate.fish

> pip install mlagents
예.
v0.8.0부터는 PyPI에서 설치한 것 같습니다.
mlagents · PyPI
https://pypi.org/project/mlagents/
Release ML-Agents Beta 0.8.0 · Unity-Technologies/ml-agents
https://github.com/Unity-Technologies/ml-agents/releases/tag/0.8.0
Splitting ML-Agents package into mlagents.trainers and mlagents.envs.

Unity 응용 프로그램에서 예제 항목 열기


Unity Hub에서 응용 프로그램을 시작합니다.Unity Hub가 설치되어 있지 않은 경우 다음을 참조하십시오.
Mac에서 homebrew를 사용하여 Unity 설치(Unity Hub, 일본어 지원)
https://qiita.com/kai_kou/items/445e614fb71f2204e033
ML-Agents를 사용하려면 Unity 버전 2017.4 이상이 필요합니다.이번에 이용했습니다2019.1.13f1.
응용 프로그램이 시작되면 열기 단추에서 任意のディレクトリ/ml-agents/UnitySDK 폴더를 선택합니다.

Unity 편집기의 버전에 따라 업그레이드 여부를 확인하는 대화 상자가 나타납니다.

프로모션 버튼을 클릭하여 계속합니다.
업그레이드 과정은 약간의 시간이 필요하다.

장면 열기 확인


예시를 실행할 수도 있고, 단원에서 항목을 가져오고 실행을 시도할 수도 있습니다.
  • Unity 응용 프로그램 아래 패널의 Project 탭에서 다음 폴더로 열기
  • [Assets] > [ML-Agents] > [Examples] > [3DBall] > [Scenes]
  • 열면 [3DBall] 파일이 있으므로 두 번 클릭하여 열립니다

  • 나온 것 같아요.

    셀 위에 있는 재생 버튼을 클릭합니다.
    왠지 감동이에요.

    가져온 예가 작동하는지 확인합니다.
    지금 공은 곧 널빤지에서 떨어질 것이다.이것은 기계 학습이므로 떨어지지 않게 한다.

    장면 설정


    ML-Agents에서 학습할 수 있는 설정입니다.
  • Unity 응용 프로그램의 편집 메뉴에서 항목 설정 열기

  • [검사기] 패널에서 다음 설정을 확인합니다.
  • Resolution and Presentation의 Run In Background
  • 가 체크되었습니다.
  • Resolution Dialog 사용 안 함 표시

  • 사전 조립 설정

  • Unity 응용 프로그램 아래의 Project 탭에서 다음 폴더로 열기
  • [Assets] > [ML-Agents] > [Examples] > [3DBall] > [Prefabs]
  • Prefabs 폴더에서 게임
  • 을 두 번 클릭합니다.
  • Unity 애플리케이션 왼쪽의 Hierarchy 패널에서 Game>Pratform 선택

  • Unity 애플리케이션의 오른쪽 Inspector 패널에 있는 Ball 3D Agent(Script)의 Brain이 3DBallLearning(Learning Brain)인지 확인
  • "3DBallLearning(Learning Brain)"이 아닌 경우
  • 항목 탭에서 다음 폴더로 열기
  • [Assets] > [ML-Agents] > [Examples] > [3DBall] > [Brains]
  • [검사기] 패널의 Brain에 3DBallLearning을 드래그하여 지정합니다.

  • Ctrl+s 키를 사용하여 장면 저장
  • ※ 설정 변경 후 잘 보관하지 않으면 구축 시 설정을 반영하지 않고 빠져들 수 있습니다.
  • Brains 설정

  • Unity 응용 프로그램 아래 패널의 Project 탭에서 다음 폴더로 열기
  • [Assets] > [ML-Agents] > [Examples] > [3DBall] > [Scenes]
  • Unity 애플리케이션 왼쪽의 Hierarchy 패널에서 Ball3DAcademy
  • 선택
  • Unity 응용 프로그램의 오른쪽에 있는 Inspector 패널의 Broadcast Hub> Brains에서 3DBallLearning(Learning Brain)이 지정되어 있는지 확인
  • 3DBallLearning(Learning Brain) 옆에 있는 Control 선택

  • 배우다


    학습에 필요한 설정을 마쳤기 때문에 Unity 응용 프로그램에서 공부해 보세요.

    명령을 집행하다


    컨트롤러로 돌아가 학습을 시작하는 명령을 실행합니다.--run-id=firstRunfirstRun는 임의로 결정할 수 있다.
    > cd 適当なディレクトリ/ml-agents/ml-agents
    > mlagents-learn ../config/trainer_config.yaml --run-id=firstRun --train
    
    (略)
     '<trainer-config-path>': '../config/trainer_config.yaml'}
    INFO:mlagents.envs:Start training by pressing the Play button in the Unity Editor.
    
    INFO:mlagents.envs:Start training by pressing the Play button in the Unity Editor. Unity 어플리케이션의 상단에 출력▶]태그 요소의 표시 속성을 수정합니다.초기 설정이라면 50000보를 실행하기 때문에 시간이 좀 걸린다.
    INFO:mlagents.envs:
    'Ball3DAcademy' started successfully!
    Unity Academy name: Ball3DAcademy
    (略)
    Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
    INFO:mlagents.envs:Hyperparameters for the PPOTrainer of brain 3DBallLearning:
            trainer:        ppo
    (略)
    INFO:mlagents.trainers: firstRun-0: 3DBallLearning: Step: 1000. Time Elapsed: 43.596 s Mean Reward: 1.150. Std of Reward: 0.680. Training.
    (略)
    INFO:mlagents.trainers: firstRun-0: 3DBallLearning: Step: 49000. Time Elapsed: 921.048 s Mean Reward: 100.000. Std of Reward: 0.000. Training.
    INFO:mlagents.envs:Saved Model
    INFO:mlagents.trainers: firstRun-0: 3DBallLearning: Step: 50000. Time Elapsed: 939.028 s Mean Reward: 100.000. Std of Reward: 0.000. Training.
    (略)
    INFO:tensorflow:Restoring parameters from ./models/firstRun-0/3DBallLearning/model-50001.cptk
    INFO:tensorflow:Froze 14 variables.
    Converted 14 variables to const ops.
    Converting ./models/firstRun-0/3DBallLearning/frozen_graph_def.pb to ./models/firstRun-0/3DBallLearning.nn
    IGNORED: Cast unknown layer
    IGNORED: StopGradient unknown layer
    GLOBALS: 'is_continuous_control', 'version_number', 'memory_size', 'action_output_shape'
    IN: 'vector_observation': [-1, 1, 1, 8] => 'sub_3'
    IN: 'epsilon': [-1, 1, 1, 2] => 'mul_1'
    OUT: 'action', 'action_probs'
    DONE: wrote ./models/firstRun-0/3DBallLearning.nn file.
    INFO:mlagents.trainers:Exported ./models/firstRun-0/3DBallLearning.nn file
    

    학습 결과를 응용 프로그램에 편입하다


    학습이 완료되면 *.nn 파일에 학습 결과를 저장합니다.
    이를 Unity 응용 프로그램에 편입하면 학습 결과를 Unity 응용 프로그램에 반영할 수 있다.

    Unity 애플리케이션 설정


    Player를 설정합니다.
  • Unity 응용 프로그램의 편집 메뉴에서 항목 설정 선택
  • Inspector 뷰의 Other Settings 열에서 다음 사항을 확인하고 설정합니다.
  • [Scripting Runtime Version]을 [.Net4.x Equivalent]로 설정

  • 학습 결과 파일 가져오기


    학습결과를 터미널 또는 검색기에서 다음 폴더로 복사합니다.
  • 학습 결과 파일: models/firstRun-0/3DBallLearnig.nn
  • 저장 위치: UnitySDK/Assets/ML-Agents/Examples/3DBall/TFModels/
  • ※ 저장지3DBallLearnig.nn 파일이 이미 존재하므로 이름을 바꿉니다.
    > cp models/firstRun-0/3DBallLearnig.nn ../UnitySDK/Assets/ML-Agents/Examples/3DBall/TFModels
    
  • Unity 응용 프로그램의 Project 패널에서 다음 파일을 선택합니다.
  • [Assets] > [ML-Agents] > [Examples] > [3DBall] > [Brains] > [3DBallLearning]
  • Unity 응용 프로그램의 Project 패널에서 다음 폴더 선택
  • [Assets] > [ML-Agents] > [Examples] > [3DBall] > [TFModels]
  • TFModels 폴더의 3DBallLearning.nn 파일을 Unity 응용 프로그램의 Inspector 패널의 Model 항목으로 드래그합니다.

  • Unity 응용 프로그램의 Hierarchy 패널에서 다음 선택
  • [3DBall] > [Ball3DAcademy]
  • Unity 응용 프로그램의 Inspector 패널에서 Broadcast Hub > Brains > 3DBallLearning 옆에 있는 Control 선택을 취소합니다.

  • Unity 상부 위치[▶]버튼
  • 이렇게 하면 학습 결과가 포함된 상태에서 응용 프로그램을 시작합니다.
    50000보를 배우면 동작이 평온해도 전문적이다.무슨 전공인지 모르겠어요^^

    샘플은 또 다른 것이 있으니 많이 시도해 보세요.
    ML-Agents는 v0.5.0 정도부터 터치하지만 사용법이 간단해졌어요^^

    참고 자료


    Mac에서 Unity ML-Agents 환경 구축(v0.6.0 지원)-Qiita
    https://qiita.com/kai_kou/items/2a6545d1f9d83178d0c0
    Release ML-Agents Beta 0.9.0 · Unity-Technologies/ml-agents
    https://github.com/Unity-Technologies/ml-agents/releases/tag/0.9.0
    Release ML-Agents Beta 0.9.1 · Unity-Technologies/ml-agents
    https://github.com/Unity-Technologies/ml-agents/releases/tag/0.9.1
    [Unity] Unity에서 기계의'ML-Agent'를 배우고 얻은 지식과 견해를 많이 해봤어요.
    http://tsubakit1.hateblo.jp/entry/2018/02/18/233000
    ml-agents/Installation.md at master · Unity-Technologies/ml-agents
    https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation.md
    ml-agents/Basic-Guide.md at master · Unity-Technologies/ml-agents
    https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md#setting-up-ml-agents-within-unity
    Using an Environment Executable
    https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Executable.md
    유니티 공식 샘플 ml-agents로 AI 테스트
    http://am1tanaka.hatenablog.com/entry/2017/11/08/230525
    Mac에서anyenv를 사용하여python 환경 구축 (bash,fish 대응) - Qiita
    https://qiita.com/kai_kou/items/f54931991a781b96bb9c
    Mac에서 homebrew를 사용하여 Unity 설치(Unity Hub, 일본어 지원)
    https://qiita.com/kai_kou/items/445e614fb71f2204e033

    좋은 웹페이지 즐겨찾기