在MindSpore Lite使用中遇到问题时,可首先查看日志,多数场景下的问题可以通过日志报错信息直接定位(通过设置环境变量GLOG_v 调整日志等级可以打印更多调试日志),这里简单介绍几种常见报错场景的问题定位与解决方法。
- 因不同版本中日志行号可能存在差异,下述示例日志报错信息中的行号信息均用”**”表示;
- 示例日志中只列出了通用信息,其他涉及具体场景的信息均用“****”表示。
日志报错信息:
[mindspore/lite/tools/converter/converter.cc:**] BuildFuncGraph] Get funcGraph failed for fmk: ****
[mindspore/lite/tools/converter/converter.cc:**] Converter] Parser/Import model return nullptr
[mindspore/lite/tools/converter/converter_context.h:**] PrintOps] ===========================================
[mindspore/lite/tools/converter/converter_context.h:**] PrintOps] UNSUPPORTED OP LIST:
[mindspore/lite/tools/converter/converter_context.h:**] PrintOps] FMKTYPE: ****, OP TYPE: ****
[mindspore/lite/tools/converter/converter_context.h:**] PrintOps] ===========================================
[mindspore/lite/tools/converter/converter.cc:**] RunConverter] CONVERT RESULT FAILED:-300 Failed to find operator.
日志报错信息:
[mindspore/lite/tools/converter/parser/caffe/caffe_model_parser.cc:**] ConvertLayers] parse node **** failed.
日志报错信息:
[mindspore/lite/src/lite_model.cc:**] ConstructModel] The model buffer is invalid and fail to create graph.
[mindspore/lite/src/lite_model.cc:**] ImportFromBuffer] construct model failed.
日志报错信息:
[mindspore/lite/src/lite_model.cc:**] ConstructModel] Maybe this is a model transferred out using the conversion tool before 1.1.0.
[mindspore/lite/src/lite_model.cc:**] ImportFromBuffer] construct model failed.
日志报错信息:
WARNING [mindspore/lite/src/lite_model.cc:**] ConstructModel] model version is MindSpore Lite 1.2.0, inference version is MindSpore Lite 1.5.0 not equal
[mindspore/lite/src/runtime/infer_manager.cc:**] KernelInferShape] Get infershape func failed! type: ****
[mindspore/lite/src/scheduler.cc:**] ScheduleNodeToKernel] FindBackendKernel return nullptr, name: ****, type: ****
[mindspore/lite/src/scheduler.cc:**] ScheduleSubGraphToKernels] schedule node return nullptr, name: ****, type: ****
[mindspore/lite/src/scheduler.cc:**] ScheduleMainSubGraphToKernels] Schedule subgraph failed, index: 0
[mindspore/lite/src/scheduler.cc:**] ScheduleGraphToKernels] ScheduleSubGraphToSubGraphKernel failed
[mindspore/lite/src/scheduler.cc:**] Schedule] Schedule graph to kernels failed.
[mindspore/lite/src/lite_session.cc:**] CompileGraph] Schedule kernels failed: -1.
日志报错信息:
[mindspore/lite/src/common/tensor_util.cc:**] CheckTensorsInvalid] The shape of tensor contains negative dimension, check the model and assign the input shape with method Resize().
[mindspore/lite/src/lite_session.cc:**] RunGraph] CheckInputs failed.
使用MindSpore Lite集成时对推理结果后处理后发现效果不理想,怀疑推理精度存在问题要如何定位?
首先确认输入数据是否正确:在MindSpore Lite 1.3.0及之前版本ms模型的输入数据格式为NHWC,MindSpore Lite 1.5.0之后的版本支持inputDataFormat 参数设置输入数据格式为NHWC或NCHW,需要检查输入数据的格式确保和ms模型要求的输入格式一致;
通过MindSpore Lite提供的基准测试工具benchmark 进行精度测试验证,日志如下则可能存在精度问题;否则MindSpore Lite推理精度正常,需要检查数据前/后处理过程是否有误。
Mean bias of all nodes/tensors is too big: **
Compare output error -1
Run MarkAccuracy error: -1
若MindSpore Lite进行整网推理存在精度问题,可以通过benchmark工具的Dump功能 保存算子层输出,和原框架推理结果进行对比进一步定位出现精度异常的算子。
针对存在精度问题的算子,可以下载MindSpore源码 检查算子实现并构造相应单算子网络进行调试与问题定位;也可以在MindSpore社区提ISSUE 给MindSpore Lite的开发人员处理。
MindSpore Lite使用fp32推理结果正确,但是fp16推理结果出现Nan或者Inf值怎么办?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。