您好,欢迎访问上海聚搜信息技术有限公司官方网站!

华为云国际站代理商:为什么华为云服务器yolov7-tiny转onnx后精度下降很大?

时间:2023-08-23 16:44:02 点击:

  为什么华为云服务器yolov7-tiny转onnx后精度下降很大?

  【聚搜云】是上海聚搜信息技术有限公司旗下品牌,坐落于魔都上海,服务于全球、2019年成为阿里云代理商生态合作伙伴。与阿里云代理商腾讯云、华为云、西部数码、美橙互联、AWS亚马逊云国际站渠道商、聚搜云,长期战略合作的计划!华为云国际站代理商专业的云服务商!

  为什么华为云服务器yolov7-tiny转onnx后精度下降很大?

  本文由华为云渠道商[聚搜云] [ www.4526.cn]撰写。深度学习模型在找到更好的网络架构和参数集后,需要进行转换,以便用于Inference(前向计算)或再训练(Fine-tune)等任务。在转换过程中,经常会遇到一些问题,比如精度下降。近期,我们发现当将一种经典模型YOLOV7-Tiny转换成ONNX格式后,其精度下降比较明显。这个问题需要认真探究和解决。

  【YOLOV7】和【ONNX】的概述

  yolov7-tiny是经典的物体检测模型,使用简单、快速和准确率较高的特征提取方式,在工业视觉等领域被广泛应用。而ONNX则是开放式神经网络交换格式(Open Neural Network Exchange),它能够使得我们在各种深度学习框架之间交换和使用模型。比如,你可以在Caffe2中训练模型,但你可能最终想在TensorFlow中部署它。而ONNX就可以很好地实现这个过程。

  精度下降问题的根源

  我们对比分析了使用pytorch作为源框架、通过onnx.export尝试将yolov7-tiny模型转换到onnx格式后的结果与原始pytorch模型的差异,并发现了一些有趣的现象。比如,进行转换后,生成的模型浮点运算的精度由32位变成了16位,这说明onnx自身缺省的float16压缩策略产生的不良影响。同时,onnx也还不能完美适配所有的操作符,可能会涉及一些模型参数调整,因此保证了模型的完整性以及不影响后面的环节,选取合适的操作能力量化误差,对精度下降进行抑制。这些实验结果是有信服力的佐证。

d99b16ce23ac8d5944995bd2a2e8589e.jpg

  解决方案及结论

  在我们的经验中,定量评估转换后的模型可以识别出每个类别的图像数目、混淆矩阵、准确率、F-值等。这不仅可用于确定转化后模型的质量,还可以帮助您找到具体哪些操作符会影响到模型精度。而针对上述分析结果,我们可以采取以下一些措施进行解决:

  1.调整转换的实现方式,减少精度损失,最好的方式是使用更高的精度(比如32位)来转换模型。

  2.升级ONNX版本并提供更好的稳定性和可用性。

  3.选择更适合的操作和前向计算框架,以提高转换后的准确度和优化框架,比如TensorRT,Nvidia 支持的用于加速和部署深度学习推理的高性能C++库。

  综上所述,针对华为云服务器yolov7-tiny转onnx后精度下降的问题,在转换实现和框架选择等方面都需要进行谨慎的优化和调整,以获得更好的精度和性能。


阿里云优惠券领取
腾讯云优惠券领取
QQ在线咨询
售前咨询热线
133-2199-9693
售后咨询热线
4000-747-360

微信扫一扫

加客服咨询