-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
304쪽 9.5.4 ml-agent에서의 모방학습 결과 #62
Comments
네네 말씀하신대로 trainer-path에는 yaml 파일의 경로 |
kart.yaml 의 경로 = C:\Users\nnn75\OneDrive\Batang\Unity_ML_Agents_2.0-main\Unity_ML_Agents_2.0-main\config 입력 명령어 결과 usage: mlagents-learn.exe [-h] [--env ENV_PATH] [--resume] [--deterministic] [--force] [--run-id RUN_ID] mlagents-learn.exe: error: unrecognized arguments: C:\envs\Kart_Windows/KART.exe 빌드 파일의 경로를 인식하지 못한 것 같은데 경로 자체는 맞거든요. 해당 명령어 입력하는 경로는 아무 곳이여도 상관 없나요? |
음.. 일단 yaml 파일 경로가 config까지만 입력하시면 안되고 config/kart.yaml 까지 입력해주셔야 할 것 같습니다. 그리고 환경의 경로도 KART.exe까지 입력해주셔야해서 일단 이 부분부터 진행해보시면 좋을 것 같습니다! |
|
카트 부분에서 ppo만 ppo+bc, ppo+bc+gail 같이 사용한 학습에 대한 그래프가 있는데 trainer type : ppo 부분에 behavioral_cloning이나 gail 단일로 써도 오류가 나더라구요. |
[INFO] ArcadeDriver. Step: 21000. Time Elapsed: 242.250 s. No episode was completed since last summary. Training. 마지막 과정에서 학습중에 에피소드가 완료되지 않았다고 뜨는데 어떤 이유때문에 그럴까요? |
Kart.exe로 플레이 ▼ 플레이한 데이터 Demonstration 폴더에 Kart.demo 파일로 저장 ▼ 파이썬 스크립트로 demo파일 훈련하면 BC폴더에 로드파일(년/월/일/시간)으로 남고 ▼ 두 번째로 생성된 데모파일로 Kart.yaml을 이용하여 최종 학습 시킴 ▼ 결과물(ONNX 파일) 완성 이 과정이 맞나요? |
책을 기준으로는 작성된 내용대로 명령어를 실행하시면 gail + bc 알고리즘에 의한 학습을 진행합니다. |
알고리즘 선택은 yaml 파일에서 가능하지만 모방학습으로 진행하실 경우 강화학습과 학습 방법이 달라서 그냥 ppo만 사용하는 것은 안될 것 같습니다. 단, 모방학습을 사용하지 않고 강화학습만으로 학습을 원하시는 경우 gail, bc 부분은 없애고 PPO만으로 학습하시는 것이 맞습니다. |
이 메시지의 경우 학습 과정을 프린트 하는 단위 스텝 (ex. 1000스텝) 동안 에피소드가 한번도 종료되지 않아서 그렇습니다. 혹시 summary하는 주기를 너무 짧게 잡으신건 아닌지 확인해보시면 좋을 것 같습니다. |
파이썬이랑 mlagents-learn은 학습 방법이 다릅니다. 즉, 사람이 플레이 해서 얻은 데모 파일 -> yaml -> onnx 이 과정이 하나의 학습 과정이고 |
.
trainer_type: gail 위와 같이 단일로 적었더니 ValueError: 'gail' is not a valid TrainerType 위와 같은 오류가 발생했습니다. |
Python 코드 실행 후 생성된 demo 파일은 사용하지 않구요! Saved_model 폴더에 BC 학습을 수행하면서 정보를 기록한 tensorboard 이벤트 파일과 BC 알고리즘이 학습된 모델 파라미터 (ckpt)가 저장되어서 학습이 완료되면 해당 ckpt 파일을 파이썬 파일에 설정하신 후 load_model=True, train_mode=False로 설정하고 코드 실행하시면 학습된 BC 결과 확인하실 수 있습니다! |
아아아 trainer_type은 ppo로 하는게 맞구요! yaml에 BC설정을 추가해주시면 BC가 적용되고 gail 설정을 추가해주시면 gail 알고리즘이 적용되는 방식입니다! |
behaviors:
여기서 BC랑 GAIL 알고리즘을 단독으로 혹은 함께 사용하려면 어느 부분을 수정해주면 될까요? |
아 저도 이 방법은 아는데 문제는 학습된 파일을 유니티 내에 KartAgent의 Behavior Parameters에 적용시킬 수 있는 |
약 5만번 정도 학습한 데이터(onnx)를 하나 더 복사한 KartAgent 오브젝트의 behavior parameters에 적용했는데 음... 분명 데모 파일 만들 때 한 7바퀴 정도 제대로 돌았는데도 이러네요... 혹시 추정 해 볼 수 있는 문제가 있을까요? |
위 코드에서 behavior_cloning: 블럭만 사용하면 BC만 적용되는 것이고 gail: 블럭만 사용하시면 gail만 적용됩니다! 둘다 사용하면 두 알고리즘 모두 사용되구요! Gail만 사용
BC만 사용
|
아 파이썬 학습의 경우 ONNX가 생성되지는 않습니다. 제가 알기로는 mlagents 측에서 ckpt 파일을 유니티 Behavior parameters 내에 적용할 수 있는 기능을 업데이트 할 예정이라고 했었는데 아직 기능이 공개되지는 않은 것 같습니다. |
데모파일 만들때 7바퀴도 적을수도 있습니다 ㅜㅜ 그리고 돌때마다 조금 다양한 패턴으로 도는것이 좋을 수 있습니다. 만약 친구분의 에이전트가 제대로 학습된 경우 친구분의 데모파일을 사용해보시는 것도 추천드립니다! |
mlagents-learn [trainer-path] --env=[env-path]/build_name --run-id==[run-id]
trainer-path에 Kart.yaml
env-path에 Kart.exe 빌드 폴더 위치
run-id는 모르겠네요.
제가 말씀드린게 맞나요?
각 괄호 안에 어떤 명령어들이 들어가야 하나요??
The text was updated successfully, but these errors were encountered: