UnityでML-Agentsを利用しています。
Unity ML-Agents Python Low Level APIを利用してPythonからUnityで作成した環境を呼び出し、
PyTorchで強化学習のモデルを作成して学習させ、その結果生成された推論モデルをOnnx形式で保存しました。
生成されたOnnx形式のモデルをUnityのML-Agentsで動かそうとしているのですが、ファイル形式が異なっているようで、インスペクタービューからAgentのBehavior Parameters
のModel
にモデルを設定しようとすると
NullReferenceException: Object reference not set to an instance of an object MLAgents.Inference.BarracudaModelParamLoader.CheckModel (Barracuda.Model model, MLAgents.Policies.BrainParameters brainParameters, MLAgents.Sensors.SensorComponent[] sensorComponents, MLAgents.Policies.BehaviorType behaviorType) (at C:/ml-agents/com.unity.ml-agents/Runtime/Inference/BarracudaModelParamLoader.cs:149) MLAgents.Editor.BehaviorParametersEditor.DisplayFailedModelChecks () (at C:/ml-agents/com.unity.ml-agents/Editor/BehaviorParametersEditor.cs:108) MLAgents.Editor.BehaviorParametersEditor.OnInspectorGUI () (at C:/ml-agents/com.unity.ml-agents/Editor/BehaviorParametersEditor.cs:68) UnityEditor.UIElements.InspectorElement+<>c__DisplayClass55_0.<CreateIMGUIInspectorFromEditor>b__0 () (at <9a184ab867bb42c296d20ace04f48df3>:0) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
というエラーメッセージが表示されて設定できませんでした。
どうすればOnnx形式の学習済みモデルをML-Agentsで動かすことが可能でしょうか?
よろしくお願いいたします。
#試したこと
Onnx形式の学習済みモデルのファイルの拡張子を手作業で「.onnx」から「.nn」に変えた上で同様のことをやってみましたが、結果は変わりませんでした。
実行環境
Unityのバージョン:2019.3.3f1
ml-agentsのバージョン: 0.15.1,
ml-agents-envsのバージョン: 0.15.1,
Communicator APIのバージョン: API-14,
TensorFlowのバージョン: 2.0.1
OSのバージョン:Windows 10 Home
あなたの回答
tips
プレビュー