如何处理MindSpore Lite推理精度异常问题

如何处理MindSpore Lite推理精度异常问题

现象描述

使用MindSpore Lite集成时对推理结果后处理后发现效果不理想,怀疑推理精度存在问题,可通过以下方式进行精度分析验证。

原因分析

模型推理效果不理想的原因一般包括:输入数据有误、数据预处理或后处理流程有误、fp16推理引入的精度损失、推理框架存在精度问题:

  • 输入数据格式异常或预处理有误。
  • 打开fp16推理引起的精度损失。
  • 算子精度异常。

解决办法

步骤1:检查输入数据。

  1. MindSpore Lite 1.3.0及之前版本ms模型的输入数据格式为NHWC,MindSpore Lite 1.5.0之后的版本支持inputDataFormat 参数设置输入数据格式为NHWC或NCHW,需要确保输入数据的格式确保和ms模型要求的输入格式一致。

  2. 检查输入数据是否需要预处理及预处理过程是否正确:例如未进行归一化处理,导致数值较大,在进行矩阵乘或幂指运算时出现数值溢出。

步骤2:检查是否打开fp16推理。

  1. 使用fp16推理时会存在数值精度损失,整网推理过程中会由于误差累积导致最终输出结果误差变大,甚至会导致数值溢出从而出现Nan或Inf值。
  2. 如果精度异常问题由于打开fp16推理引入,可以参考步骤3定位具体出现精度问题的算子。然后使用MindSpore Lite 1.5.0及之后版本提供混合精度推理能力,在整网推理优先使用fp16时支持设置某一层算子进行fp32推理,具体使用方法可参考官网文档混合精度运行 ,通过将溢出层设置为fp32避免在fp16推理时出现的整网推理精度问题。

步骤3:通过MindSpore Lite提供的基准测试工具benchmark进行精度验证。

  1. 通过benchmark工具的Dump功能 保存算子层输出,和原框架推理结果进行对比进一步定位出现精度异常的算子。
  2. 针对存在精度问题的算子,可以下载MindSpore源码 检查算子实现并构造相应单算子网络进行调试与问题定位;也可以在MindSpore社区提ISSUE 给MindSpore Lite的开发人员处理。

建议与总结

相关参考文档

其他推理问题请参考《问题定位指南》。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
猫狗识别是一种常见的图像分类问题,可以使用深度学习模型来进行解决。MindSpore Lite是一种轻量级的深度学习推理框架,可以在移动端设备上实现高效的模型推理。下面是一个基于MindSpore Lite的猫狗识别的简单示例: 1. 数据准备 我们可以使用一些已经标注好的猫狗图像数据集来训练我们的模型。这里我们以kaggle上的一个猫狗分类数据集为例。下载数据集后,我们需要对数据进行预处理,将图像转换为模型可以接受的输入格式。对于MindSpore Lite,我们可以将图像转换为NCHW格式,并使用OpenCV库来进行图像读取和预处理。 2. 模型训练 我们可以使用MindSpore框架来训练我们的模型。这里我们选择使用ResNet-18模型作为我们的基础模型,并进行微调以适应我们的数据集。训练好的模型可以保存为MindSpore Lite支持的格式。 3. 模型推理 我们可以使用MindSpore Lite框架来进行模型推理。这里我们可以将训练好的模型转换为MindSpore Lite支持的格式,并使用MindSpore Lite提供的API来进行推理推理过程中,我们可以将图像输入到模型中,并得到模型的输出结果。 4. 应用集成 最后,我们可以将训练好的模型集成到我们的应用程序中,以进行实时的猫狗识别。这里我们可以使用Flutter等跨平台框架来构建我们的应用程序,并使用MindSpore Lite提供的Flutter插件来进行推理
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值