如何解决无法在 Unity 的旧版 ML-agents 上使用经过训练的模型
我正在使用旧的 Unity 项目进行培训,但遇到了几个问题:
Unity 控制台显示如下:
ArgumentException: Off-axis dimensions must match
Barracuda.TensorExtensions.Concat (Barracuda.TensorShape[] shapes,system.int32 axis) (at <1071b9a446b04698af9605e3e272de23>:0)
Barracuda.ModelAnalyzer.ListTemporaryTensorShapes (Barracuda.Model model,System.Collections.Generic.IDictionary`2[TKey,TValue] inputShapes,System.Collections.Generic.IDictionary`2[System.String,Barracuda.TensorShape]& shapesByName) (at <1071b9a446b04698af9605e3e272de23>:0)
Barracuda.ModelAnalyzer.TryGetoutputTensorShape (Barracuda.Model model,System.String output,Barracuda.TensorShape& shape) (at <1071b9a446b04698af9605e3e272de23>:0)
Barracuda.ModelAnalyzer.TryGetoutputTensorShape (Barracuda.Model model,Barracuda.TensorShape& shape) (at <1071b9a446b04698af9605e3e272de23>:0)
Barracuda.ModelMetadataExtensions.GetShapeByName (Barracuda.Model model,System.String name) (at <1071b9a446b04698af9605e3e272de23>:0)
MLAgents.InferenceBrain.BarracudamodelParamloader.CheckOutputTensorShape (MLAgents.InferenceBrain.BarracudamodelParamloader+ModelActionType isContinuous,system.int32 modelActionSize) (at Assets/ml-agents-master/UnitySDK/Assets/ML-Agents/Scripts/InferenceBrain/BarracudamodelParamloader.cs:476)
MLAgents.InferenceBrain.BarracudamodelParamloader.GenerateChecks () (at Assets/ml-agents-master/UnitySDK/Assets/ML-Agents/Scripts/InferenceBrain/BarracudamodelParamloader.cs:186)
MLAgents.InferenceBrain.BarracudamodelParamloader.GetLoaderAndCheck (Barracuda.IWorker engine,Barracuda.Model model,MLAgents.BrainParameters brainParameters) (at Assets/ml-agents-master/UnitySDK/Assets/ML-Agents/Scripts/InferenceBrain/BarracudamodelParamloader.cs:46)
MLAgents.LearningBrain.ReloadModel (system.int32 seed) (at Assets/ml-agents-master/UnitySDK/Assets/ML-Agents/Scripts/LearningBrain.cs:126)
MLAgents.LearningBrainEditor.OnInspectorGUI () (at Assets/ml-agents-master/UnitySDK/Assets/ML-Agents/Editor/LearningBrainEditor.cs:60)
UnityEditor.InspectorWindow.DoOnInspectorGUI (System.Boolean rebuildOptimizedGUIBlock,UnityEditor.Editor editor,System.Boolean wasVisible,UnityEngine.Rect& contentRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1625)
UnityEngine.GUIUtility:ProcessEvent(Int32,IntPtr)
.nn
我使用的是 Unity 2018.3.11 和 ML-agent 0.8.1
我已将 Converting ./models/test-0/3DBallLearning/frozen_graph_def.pb to ./models/test-0/3DBallLearning.nn
IGnorED: Cast unkNown layer
IGnorED: Range unkNown layer
IGnorED: Transpose unkNown layer
IGnorED: Shape unkNown layer
IGnorED: TensorArrayV3 unkNown layer
IGnorED: TensorArrayV3 unkNown layer
IGnorED: Shape unkNown layer
IGnorED: Range unkNown layer
IGnorED: TensorArrayScatterV3 unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Less unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Less unkNown layer
IGnorED: Enter unkNown layer
IGnorED: LogicalAnd unkNown layer
IGnorED: LoopCond unkNown layer
IGnorED: Switch unkNown layer
IGnorED: Switch unkNown layer
IGnorED: Switch unkNown layer
IGnorED: Switch unkNown layer
IGnorED: Switch unkNown layer
IGnorED: TensorArrayReadV3 unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Split unkNown layer
IGnorED: TensorArrayWriteV3 unkNown layer
IGnorED: Enter unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: Exit unkNown layer
IGnorED: Exit unkNown layer
IGnorED: Exit unkNown layer
IGnorED: TensorArraySizeV3 unkNown layer
IGnorED: Range unkNown layer
IGnorED: TensorArrayGatherV3 unkNown layer
IGnorED: Range unkNown layer
IGnorED: Transpose unkNown layer
IGnorED: Range unkNown layer
IGnorED: Transpose unkNown layer
IGnorED: Shape unkNown layer
IGnorED: TensorArrayV3 unkNown layer
IGnorED: TensorArrayV3 unkNown layer
IGnorED: Shape unkNown layer
IGnorED: Range unkNown layer
IGnorED: TensorArrayScatterV3 unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Merge unkNown layer
IGnorED: Less unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Less unkNown layer
IGnorED: Enter unkNown layer
IGnorED: LogicalAnd unkNown layer
IGnorED: LoopCond unkNown layer
IGnorED: Switch unkNown layer
IGnorED: Switch unkNown layer
IGnorED: Switch unkNown layer
IGnorED: Switch unkNown layer
IGnorED: Switch unkNown layer
IGnorED: TensorArrayReadV3 unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Enter unkNown layer
IGnorED: Split unkNown layer
IGnorED: TensorArrayWriteV3 unkNown layer
IGnorED: Enter unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: NextIteration unkNown layer
IGnorED: Exit unkNown layer
IGnorED: Exit unkNown layer
IGnorED: Exit unkNown layer
IGnorED: TensorArraySizeV3 unkNown layer
IGnorED: Range unkNown layer
IGnorED: TensorArrayGatherV3 unkNown layer
IGnorED: Range unkNown layer
IGnorED: Transpose unkNown layer
IGnorED: StopGradient unkNown layer
Traceback (most recent call last):
File "C:\Users\chick\anaconda3\envs\ml-agents\Scripts\mlagents-learn-script.py",line 33,in <module>
sys.exit(load_entry_point('mlagents','console_scripts','mlagents-learn')())
File "e:\ml car\assets\ml-agents-master\ml-agents\mlagents\trainers\learn.py",line 262,in main
run_training(0,run_seed,options,Queue())
File "e:\ml car\assets\ml-agents-master\ml-agents\mlagents\trainers\learn.py",line 95,in run_training
tc.start_learning(env,trainer_config)
File "e:\ml car\assets\ml-agents-master\ml-agents\mlagents\trainers\trainer_controller.py",line 235,in start_learning
self._export_graph()
File "e:\ml car\assets\ml-agents-master\ml-agents\mlagents\trainers\trainer_controller.py",line 120,in _export_graph
self.trainers[brain_name].export_model()
File "e:\ml car\assets\ml-agents-master\ml-agents\mlagents\trainers\trainer.py",line 171,in export_model
self.policy.export_model()
File "e:\ml car\assets\ml-agents-master\ml-agents\mlagents\trainers\policy.py",line 203,in export_model
tf2bc.convert(self.model_path + '/frozen_graph_def.pb',self.model_path + '.nn')
File "e:\ml car\assets\ml-agents-master\ml-agents\mlagents\trainers\tensorflow_to_barracuda.py",line 1007,in convert
o_model.inputs = {i:o_input_shapes[i] for l in o_model.layers for i in l.inputs if i not in all_layers and i not in o_model.memories}
File "e:\ml car\assets\ml-agents-master\ml-agents\mlagents\trainers\tensorflow_to_barracuda.py",in <dictcomp>
o_model.inputs = {i:o_input_shapes[i] for l in o_model.layers for i in l.inputs if i not in all_layers and i not in o_model.memories}
KeyError: 'lstm_policy/rnn/while/Switch:1'
添加到我的项目设置中,但它似乎不起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。