yeon_vision_
[가상현실] ML Agent 본문
##강화학습
- 보상을 줘서 보상이 높은쪽으로 행동하게 함
- 대표적 예로 classification
- 시뮬레이션을 많이 돌림
- 이런 시뮬레이션 돌릴때 unity를 많이 이용.
##실습
공이 타켓에 가장 적은 시간 동안 도달하는 거리로 도달하게 강화학습.
- game object 3개 생성
sphere (이름 agent) 빨강
cube (이름 target) 파랑
plane (이름 floor)
- empty TrainingArea생성하고 거기 폴더 밑에 위 3개 넣어주기.
- sphere에 rigid body 추가
- window > package manger > packages:Unity Registry로 바꿔서
"ML Agent" 설치
- Agent(구)에 add component
1) "agent" script 추가
- Packages > ML agent > Runtime의 Agent script랑 우리가 추가한 Agent script가 충돌돼서 에러나서 안됨.
- 이거 해결법은 공지사항에 있음. version문제임.
- package manger에서 add from disk로 깃허브에서 다운받은 예전버전의 ml agent 패키지를 추가하면됨.
2) Decision request 어쩌고 추가
3) Behavior Parameters도 추가하고 RollaBall 이라하자
- vector observation > space size 8로. (target의 x,z, agent의 x,y,z, x속도, y속도, 각속도 해서 총 8개 )
- vector action > space type : continuous로
- vector action > space size: 2로 (속도랑 각속도)
- Behaivor Type을 'Heuristic only'로 변경하면 키입력으로만 동작가능. play해보자.
이제 ML을 사용해보자.
- ml-agents-release/config 폴더에 trainer_config.yaml 을 사캠에 있는 파일로 대체하자
- trainer_config.yaml 열어보면 RollaBall 어떻게 행동할지 써있음
-맥북은,
ml-agents-release 폴더에서 cmd 열어서
tensorboard --logdir logs/fit
다시 새 cmd에서
mlagents-learn config/trainer_config.yaml --run-id=RollaBallTest --force
그러고 다시 unity들어가서 Behavior Type 'default'로 바꾸고 play.
### 여기서부터 수많은 시행착오를 거쳤다... 어쨌든 성공!
- 윈도우
$ pip install "tensorflow>=2.0.0"
$ pip install --upgrade tensorflow-hub
$pip install protobuf==3.20.*
#https://pytorch.org/get-started/locally/ 여기 pytorch 공식 홈피에서 맞는 명령어 확인
$pip3 install torch torchvision torchaudio
$pip3 install numpy --upgrade
$ cd ml-agents
$ pip install -e ml-agents-envs #설치실패해서 안하고 넘어감
$ pip install -e ml-agents #대신에 pip3 install mlagents이거함
# mlagents-learn {학습환경설정파일.yaml} –run-id={Behaviour 명}
$ mlagents-learn ../config/trainer_config.yaml --run-id=RollaBall --force
- 이렇게 하면 되야되는데 안되길래 trainer_config.yaml에서 rollaball부분만 따로 빼서 yaml 파일 만들어봄.
- 이때 맨 앞에 behaviors: 를 붙여줘야 에러가 나지 않음!
성공!
최종명령어
C:\Users\deard\Desktop\ml-agents-release_2\ml-agents-release_2\ml-agents>
mlagents-learn ../config/RollaBall.yaml --run-id=RollaBall --force
'OTHER COURSE WORK > 2023-1 가상현실' 카테고리의 다른 글
[가상현실] tracking 2 (0) | 2023.05.11 |
---|---|
[가상현실] tracking1 (0) | 2023.05.04 |
[가상현실] Vuforia Engine (0) | 2023.04.20 |
[가상현실] Unity NavMesh (0) | 2023.04.09 |
[가상현실] 2D game tutorial (0) | 2023.03.30 |