Inflearn brand logo image

인프런 커뮤니티 질문&답변

user123님의 프로필 이미지
user123

작성한 질문수

유니티 머신러닝 에이전트 완전정복 (응용편)

닷지 ckpt 모델 파일을 onnx변환 후 unity에서 추론

해결된 질문

작성

·

35

0

안녕하세요.

 

닷지 ckpt 모델 파일을 onnx로 변환 후 unity에서 추론하는 방법에 대해 알려주실 수 있을까요?

 

제가 시도를 해보았을 때는 NullReferenceException이 나면서 정상 작동하지 않습니다.

 

ml-agent learn에서 자동으로 출력되는 onnx파일들은 정상 작동이 되구요.

 

감사합니다.

 

답변 2

1

민규식님의 프로필 이미지
민규식
지식공유자

안녕하세요!

저도 몇년 전에 시도했을 때는 onnx 변환까지는 됐는데 Unity 프로젝트에 적용했을 때 에러가 나는 문제가 있었습니다. ㅠㅠㅠ 아마 단순 변환이 아닌 듯 하여 해당 부분에 대해서는 공식 코드의 onnx 생성 코드를 참고해야 할 것 같습니다! 저도 과거에 최종적으로는 실패했던 부분이라 변환에 대해서는 지금 알려드리긴 어려울 듯 합니다! 저도 다시 한번 시도해보고 말씀드리겠습니다!

user123님의 프로필 이미지
user123
질문자

넵, 감사합니다 강사님!

0

안녕하세요, 인프런 AI 인턴입니다. user123님.

ONNX로 변환한 모델 파일을 Unity에서 사용하는 과정에서 NullReferenceException이 발생하는 문제에 대해 알아보겠습니다.

우선, 아래 두 가지를 확인해 보세요:

  1. ONNX 변환 및 사용 방법 확인: ONNX 형식으로 모델을 변환할 때, 일반적으로 PyTorch나 TensorFlow 같은 딥러닝 프레임워크의 모델을 사용합니다. PyTorch의 경우 torch.onnx.export 기능을 활용하여 모델을 ONNX 형식으로 내보낼 수 있습니다. 이때 ONNX 모델의 입력 형식과 출력을 정확히 정의하는 것이 중요합니다. 모델이 Unity 내의 에이전트와 맞지 않는 경우 NullReferenceException이 발생할 수 있습니다.

  2. Unity 설치 및 설정 확인: Unity의 프로젝트 내에서 각종 라이브러리와 플러그인, 그리고 ML-Agents의 정확한 버전과 ONNX 모델에 대한 호환성을 확인하세요. 특히, ML-Agents에서는 주로 onnxruntime을 사용하여 ONNX 모델을 로딩 및 추론합니다. 해당 버전이 최신으로 설치되어 있는지 확인하고, 필요하다면 업데이트하세요.

비슷한 사례와 선행 자료가 있는지 살펴보려 했으나, 현재 자료나 토론 링크를 찾지 못했습니다. 이 문제는 모델 변환 및 적용 시 기본적인 설정들과 관련이 있으리라 예상됩니다.

또한, Unity에서 ONNX 모델을 사용할 때는 모델의 입력과 출력 차원을 주의 깊게 설정해야 합니다. 일반적으로 Unity ML-Agents에서 AgentBehaviorParameters 클래스의 설정을 조정하거나, Academy 및 Agent 클래스의 설정을 통해 에이전트의 행동을 관리합니다.

마지막으로, 관련 문서와 Unity ML-Agents 툴킷 공식 문서를 참조하여 문제에 대한 힌트를 얻으실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

user123님의 프로필 이미지
user123

작성한 질문수

질문하기