[ml-agent] Basic Guide

Unity3D/ml-agent 2019. 5. 27. 23:24
반응형

이 가이드는 예시적인 Unity 환경 (3D Ball)에서 사전 훈련 된 모델을 사용하고 모델을 직접 훈련시키는 방법을 보여줍니다. Unity Engine에 익숙하지 않다면, Unity의 모든 기본 개념을 배우기 위해 Roll-a-ball 튜토리얼을 적극 권장합니다.

 

Unity 내에서 ML-Agents Toolkit 설정하기

 

1. D:\workspace\unity\git\ml-agents\UnitySDK 폴더를 적당한 위치로 복사 붙여 넣기 

2. Hub로 열기 

 

 

사전 훈련 된 모델 실행

우리는 에이전트 (.nn 파일)에 대한 사전 훈련 된 모델을 포함하고 우리는 유니티 추론 엔진을 사용하여 Unity 내에서 이러한 모델을 실행합니다. 이 섹션에서는 3D Ball 예제에 대해 사전 학습 된 모델을 사용합니다.

 

Project 창에서 Assets / ML-Agents / Examples / 3DBall / Scenes 폴더로 이동하여 3DBall 장면 파일을 엽니 다.

Project 창에서 Assets / ML-Agents / Examples / 3DBall / Prefabs 폴더로 이동하십시오. 게임을 펼치고 플랫폼 프리 팹을 클릭하십시오. Inspector 윈도우에서 Platform 프리 팹을 볼 수 있습니다.

 3DBall 장면의 플랫폼은 플랫폼 프리 패브를 사용하여 만들어졌습니다. 12 개의 플랫폼을 모두 개별적으로 업데이트하는 대신 Platform 프리 패브를 업데이트 할 수 있습니다. 

Project 창에서 Inspector 창에서 Assets / ML-Agents / 3DBall / Brains에있는 3DBallLearning Brain을 Ball 3D Agent (스크립트) 구성 요소 아래의 Brain 속성으로 드래그합니다.

계층 구조 창의 각 게임에있는 각 플랫폼에는 이제 Brain으로 3DBallLearning이 포함되어 있습니다. 참고 : 장면 계층 구조의 검색 막대를 사용하여 한 번에 모든 장면을 선택하여 장면의 여러 게임 개체를 수정할 수 있습니다.

 

 

Project 창에서 Assets / ML-Agents / Examples / 3DBall / Brains에있는 3DBallLearning Brain을 클릭하십시오. Inspector 윈도우에서 속성을 볼 수 있습니다.

 

 

Project 창에서 Assets / ML-Agents / Examples / 3DBall / TFModels 폴더를 엽니 다.

 

TFModels/3DBallLearning 을 ML-Agents/Examples/3DBall/Brains/3DBallLearning에 Model에 Assign하기 

참고 : 모든 두뇌는 이제 3DBallLearning을 Model 속성의 TensorFlow 모델로 가져야합니다.

 

이 모델 (CPU 또는 GPU)에 사용할 InferenceDevice를 선택하십시오. 참고 : CPU는 대부분의 ML-Agents 툴킷 생성 모델에서 더 빠릅니다.

 

 

재생 버튼을 클릭하면 플랫폼이 사전 훈련 된 모델을 사용하여 볼의 균형을 잡는 것을 볼 수 있습니다.

Jupyter Notebook 사용하기

 

notebooks / getting-started.ipynb Jupyter 노트북에는 Python API의 기능에 대한 간단한 설명이 포함되어 있습니다. 또한 환경이 올바르게 구성되었는지 여부를 간단히 테스트 할 수도 있습니다.

 

기본 설정에서 실행 파일을 사용하려면 env_name을 Unity 실행 파일의 이름으로 설정하고 Unity Editor에서 현재 장면과 상호 작용하려면 None으로 설정하십시오.

 

환경을 구축하거나 편집기에서 상호 작용하기 전에 Unity 편집기의 Hierarchy 창에서 Ball3DAcademy를 ​​선택하고 Ball 3D Academy 구성 요소 아래에서 Control 확인란이 선택되어 있는지 확인하십시오.

 

더 많은 정보와 문서는 Python API 페이지에서 제공됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

강화 학습을 통한 두뇌 훈련

교육을위한 환경 설정

 

 

교육 환경을 설정하려면 교육에 기여한 상담원과 교육을받는 Brain을 지정해야합니다. Learning Brain으로 만 교육을 수행 할 수 있습니다.

 

 

각 플랫폼 에이전트는 할당 된 Learning Brain이 필요합니다.

이 예에서 각 플랫폼 에이전트는 Prefab을 사용하여 생성되었습니다.

한 번에 각 플랫폼 에이전트의 모든 두뇌를 업데이트하려면 플랫폼 에이전트 Prefab 만 업데이트하면됩니다.

Project 창에서 Assets / ML-Agents / Examples / 3DBall / Prefabs 폴더로 이동하십시오.

게임을 펼치고 플랫폼 프리 팹을 클릭하십시오. Inspector 윈도우에서 Platform 프리 팹을 볼 수 있습니다.

 

 

 

Project 창에서 Inspector 창에서 Assets / ML-Agents / 3DBall / Brains에있는 3DBallLearning Brain을 Ball 3D Agent (스크립트) 구성 요소 아래의 Brain 속성으로 드래그합니다.

 

 

Hierarchy 창에서 Ball3DAcademy를 ​​선택하십시오.

 

 

 

프로젝트 창에서 Assets / ML-Agents / Examples / 3DBall / Brains 폴더로 이동하여 3DBallLearning Brain을 Inspector 창의 Ball3DAcademy 객체에있는 Braodcast Hub의 Brains 속성으로 드래그합니다.

훈련을하려면 제어 확인란이 선택되어 있는지 확인하십시오.

 

 

환경 교육

 

Anaconda를 사용하고 있다면 ml-agents 환경을 먼저 활성화하는 것을 잊지 마십시오.

 

1.명령 또는 터미널 창을 엽니 다.

 

2.ML-Agents 툴킷 저장소를 복제 한 폴더로 이동하십시오.

참고 : 기본 설치를 따른 경우 모든 디렉토리에서 mlagents-learn을 실행할 수 있어야합니다.

 

3. mlagents-learn <trainer-config-path> --run-id = <실행 식별자> --train을 실행합니다.

  • <trainer-config-path>는 트레이너 구성의 상대 또는 절대 파일 경로입니다.
  • MLAgentsSDK에 포함 된 예제 환경에서 사용되는 기본값은 config / trainer_config.yaml에서 찾을 수 있습니다.
  • <실행 식별자>는 여러 가지 교육 실행 결과를 구분하는 데 사용되는 문자열입니다.
  • --train은 mlagents에게 (추측이 아닌) 교육 세션을 실행하는 방법을 알려줍니다.

4. ML-Agent repo를 복제 한 경우 간단히 실행할 수 있습니다.

mlagents-learn config/trainer_config.yaml --run-id=firstRun --train

프로젝트를 복제 했을경우 trainer_config.yaml파일을 복사해서 붙여 넣는다 

 

 

 

5. 유니티 에디터에서 Play 버튼을 눌러 트레이닝을 시작하는 메시지가 화면에 표시되면 Unity에서 ▶ ️ 버튼을 눌러 에디터에서 트레이닝을 시작할 수 있습니다.

 

참고 : 또는 편집기 대신 실행 파일을 사용하여 교육을 수행 할 수 있습니다. 실행 파일을 빌드하고 사용하는 방법에 대한 지침은이 페이지를 참조하십시오.

 

ml-agents$ mlagents-learn config/trainer_config.yaml --run-id=first-run --train

 

Ctrl + C를 눌러 학습을 중지하면 숙련 된 모델이 models / <실행 식별자> / <brain_name> .nn에 있습니다. 여기서 <brain_name>은 모델에 해당하는 Brain의 이름입니다.

 

교육을 중지하기 위해 Ctrl + C를 누를 수 있으며 훈련 된 모델은 models / <실행 ID> /  .nn에 있습니다. 여기서 은 모델에 해당하는 Brain의 이름입니다. (참고 : Windows에 알려진 버그로 인해 조기에 교육을 종료 할 때 모델 저장에 실패하게되므로 step이 trainer_config.yaml에서 설정 한 max_steps 매개 변수에 도달 할 때까지 기다리는 것이 좋습니다.)이 파일은 귀하의 모델의 최신 검사 점. 위에서 설명한 단계와 비슷한 아래의 단계에 따라 학습 된 모델을 학습 뇌에 삽입 할 수 있습니다.

 

모델 파일을 UnitySDK / Assets / ML-Agents / Examples / 3DBall / TFModels /로 이동하십시오.
Unity Editor를 열고 위에서 설명한대로 3DBall 장면을 선택하십시오.
Scene 계층 구조에서 3DBallLearning Learning Brain을 선택하십시오.
 .nn 파일을 편집기의 프로젝트 창에서 3DBallLearning 속성 윈도우의 모델 자리 표시 자로 드래그하십시오.
에디터 상단의 ▶ 버튼을 누릅니다.

 

 

다음 단계
ML-Agents 툴킷에 대한 자세한 내용과 함께 유용한 배경 외에도 ML-Agents Toolkit 개요 페이지를 확인하십시오.
3D Balance Ball 환경에 대한 자세한 내용은 시작하기 페이지를 참조하십시오.
자신의 학습 환경을 만드는 "Hello World"소개를 보려면 새로운 학습 환경 만들기 페이지를 확인하십시오.
일련의 YouTube 비디오 자습서를 보려면 Machine Learning Agents PlayList 페이지를 확인하십시오.

 

 

 

참고: https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md

 

Unity-Technologies/ml-agents

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

github.com

 

 

반응형

'Unity3D > ml-agent' 카테고리의 다른 글

[ml-agent] Learning-Environment-Create-New  (0) 2019.05.30
[ml-agent] Training config file  (0) 2019.05.30
[ml-agent] Agents  (0) 2019.05.28
[ml-agent] Background: Jupyter Notebooks  (0) 2019.05.27
[ml-agent] Installation  (0) 2019.05.27
: