一种嵌入式设备神经网络模型推理方法与流程

未命名 07-12 阅读:99 评论:0


1.本发明涉及模型量化、神经网络、嵌入式设备领域,尤其涉及一种嵌入式设备神经网络模型推理方法。


背景技术:

2.随着深度学习相关技术不断发展,神经网络模型在很多行业和场景得到广泛应用。将深度学习技术应用到物联网领域,尤其是设备数量众多的嵌入式设备上,存在着巨大的市场需求。目前常用的方式是将数据上传到服务器,在服务器上运行神经网络模型,并将推理结果传回到边缘端设备。这种方式不利于数据隐私的保护,并且对带宽等资源要求较高。另外,嵌入式设备计算和存储资源有限,而神经网络模型往往需要较大的计算量和内存。因此,将神经网络模型直接部署到嵌入式设备,面临着较大的困难,需要采用轻量化模型,并对模型进行压缩。除此之外,目前主流的推理框架都需要操作系统,难以直接应用在没有操作系统的嵌入式设备上。


技术实现要素:

3.为了解决以上技术问题,本发明提供了一种嵌入式设备神经网络模型推理方法。实现了从模型解析到模型部署的整套流程,并且面向嵌入式设备定制,对内存和计算效率进行优化。
4.本发明的技术方案是:
5.一种嵌入式设备神经网络模型推理方法,步骤如下:
6.首先,训练神经网络模型;收集训练数据,构建并训练神经网络模型。
7.其次,模型解析及计算图构建;构建模型解析模块,解析训练框架训练后的模型,针对不同的训练框架,针对性的设计解析方法;
8.第三,计算图优化;计算图优化包括算子融合,算子融合将算子组合融合成一个算子;
9.第四,模型量化;构建神经网络模型量化模块,对优化后的计算图进行量化;
10.第五,模型序列化并生成模型文件;
11.第六,解析序列化数据并构建推理时计算图;
12.第七,模型推理;在推理框架中,实现各算子的计算过程;
13.第八,评估模型损失并完善推理框架和量化策略;
14.第九,模型部署;将推理框架部署到嵌入式设备,并通过摄像头实现实时图像数据的抓取,对图像数据进行预处理,然后进行模型推理,将推理结果通过后串口及hdmi输出到外围设备。
15.进一步的,
16.构建一套用于嵌入式设备的神经网络模型的表示方法,抽取神经网络模型的各种元素,将模型表示成有向无环图的方式,使用该表示方法表示解析后的计算图。
17.计算图优化的同时,保留其他计算图优化方法的接口,方便扩展计算图优化功能。
18.通过可配置的方式,配置模型量化参数,将模型权重量化为整型数据,并通过校准数据集估计激活值量化因子,以及计算逆量化因子。
19.将模型数据整合到c语言代码文件中;模型序列化,即将计算图的图数据表示成c语言数组的方式,并相应地提出一套数据获取的规则;基于上述计算图数据,生成model_data.h和model_data.c模型文件。
20.将模型文件model_data.h和model_data.c整合到c语言推理框架中;在推理框架中,使用数据获取规则,提取相应的计算图数据,并构建推理时计算图。
21.遍历推理时计算图,按照算子类型,调用相应的算子计算过程;采用内存池的方式存放计算图的激活值,以减少内存的碎片化及内存占用。
22.构建一套模型损失评估指标,评估推理过程导致的误差以及模型量化误差;通过对部分数据进行推理,收集模型输出结果,通过和采用浮点数的训练框架输出进行比较,得到模型损失结果;基于模型损失情况,指导调试推理过程中问题;如模型损失为模型量化导致,则改进模型量化策略。
23.进一步的,
24.可采用基于risc-v架构的边缘端深度学习设备,以xilinx的mcu开发板为硬件平台,以平头哥wujian100开源ip为mcu核心,板载串口、hdmi接口和ov5640摄像头。
25.本发明的有益效果是
26.本发明实现了从模型解析到模型部署的整套流程,并且面向嵌入式设备定制,对内存和计算效率进行优化,具有较高的实用价值和创新价值。
附图说明
27.图1是本发明的工作流程示意图。
具体实施方式
28.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.本专利提出一种嵌入式设备神经网络模型推理方法,
30.首先,训练神经网络模型。收集训练数据,构建并训练神经网络模型。
31.其次,模型解析及计算图构建。构建模型解析模块,解析训练框架训练后的模型,针对不同的训练框架,针对性的设计解析方法。同时,构建一套用于嵌入式设备的神经网络模型的表示方法,抽取神经网络模型的各种元素,将模型表示成有向无环图的方式。使用上述表示方法表示解析后的计算图。
32.第三,计算图优化。构建计算图优化模块,对构建的计算图进行优化,提高模型推理效率。计算图优化包括但不限于算子融合,算子融合将常见的算子组合融合成一个算子。同时,保留其他计算图优化方法的接口,方便扩展计算图优化功能。
33.第四,模型量化。构建神经网络模型量化模块,对优化后的计算图进行量化。通过
可配置的方式,配置模型量化参数,如量化位数和量化类型等。将模型权重量化为整型数据,并通过校准数据集估计激活值量化因子,以及计算逆量化因子。
34.第五,模型序列化并生成模型文件。由于采用的嵌入式设备不含操作系统和文件系统,因此需要将模型数据整合到c语言代码文件中。构建一套模型序列化方法,将计算图的图数据表示成c语言数组的方式,并相应地提出一套数据获取的规则和方法。基于上述计算图数据,生成model_data.h和model_data.c模型文件。
35.第六,解析序列化数据并构建推理时计算图。将模型文件model_data.h和model_data.c整合到c语言推理框架中。在推理框架中,使用数据获取规则和方法,提取相应的计算图数据,并构建推理时计算图。
36.第七,模型推理。在推理框架中,实现各算子的计算过程。遍历推理时计算图,按照算子类型,调用相应的算子计算过程。采用内存池的方式存放计算图的激活值,以便减少内存的碎片化及内存占用。
37.第八,评估模型损失并完善推理框架和量化策略。构建一套模型损失评估指标,评估推理过程导致的误差以及模型量化误差。通过对部分数据进行推理,收集模型输出结果,通过和采用浮点数的训练框架输出进行比较,得到模型损失结果。基于模型损失情况,指导调试推理过程中问题。如模型损失为模型量化导致,则改进模型量化策略。
38.第九,模型部署。采用基于risc-v架构的边缘端深度学习设备,以xilinx的mcu开发板为硬件平台,以平头哥wujian100开源ip为mcu核心,板载串口、hdmi接口和ov5640摄像头。将c语言推理框架部署到嵌入式设备,并通过摄像头实现实时图像数据的抓取,对图像数据进行预处理,然后进行模型推理,将推理结果通过后串口及hdmi输出到外围设备。
39.以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

技术特征:
1.一种嵌入式设备神经网络模型推理方法,其特征在于,步骤如下:首先,训练神经网络模型;收集训练数据,构建并训练神经网络模型。其次,模型解析及计算图构建;构建模型解析模块,解析训练框架训练后的模型,针对不同的训练框架,针对性的设计解析方法;第三,计算图优化;计算图优化包括算子融合,算子融合将算子组合融合成一个算子;第四,模型量化;构建神经网络模型量化模块,对优化后的计算图进行量化;第五,模型序列化并生成模型文件;第六,解析序列化数据并构建推理时计算图;第七,模型推理;在推理框架中,实现各算子的计算过程;第八,评估模型损失并完善推理框架和量化策略;第九,模型部署;将推理框架部署到嵌入式设备,并通过摄像头实现实时图像数据的抓取,对图像数据进行预处理,然后进行模型推理,将推理结果通过后串口及hdmi输出到外围设备。2.根据权利要求1所述的方法,其特征在于,构建一套用于嵌入式设备的神经网络模型的表示方法,抽取神经网络模型的各种元素,将模型表示成有向无环图的方式,使用该表示方法表示解析后的计算图。3.根据权利要求2所述的方法,其特征在于,计算图优化的同时,保留其他计算图优化方法的接口,方便扩展计算图优化功能。4.根据权利要求3述的方法,其特征在于,通过可配置的方式,配置模型量化参数,将模型权重量化为整型数据,并通过校准数据集估计激活值量化因子,以及计算逆量化因子。5.根据权利要求4所述的方法,其特征在于,将模型数据整合到c语言代码文件中;模型序列化,即将计算图的图数据表示成c语言数组的方式,并相应地提出一套数据获取的规则;基于上述计算图数据,生成model_data.h和model_data.c模型文件。6.根据权利要求5所述的方法,其特征在于,将模型文件model_data.h和model_data.c整合到c语言推理框架中;在推理框架中,使用数据获取规则,提取相应的计算图数据,并构建推理时计算图。7.根据权利要求6所述的方法,其特征在于,遍历推理时计算图,按照算子类型,调用相应的算子计算过程;采用内存池的方式存放计算图的激活值,以减少内存的碎片化及内存占用。8.根据权利要求7所述的方法,其特征在于,构建一套模型损失评估指标,评估推理过程导致的误差以及模型量化误差;通过对部分数据进行推理,收集模型输出结果,通过和采用浮点数的训练框架输出进行比较,得到模型损失结果;基于模型损失情况,指导调试推理过程中问题;如模型损失为模型量化导致,则改进模型量化策略。9.根据权利要求1所述的方法,其特征在于,采用基于risc-v架构的边缘端深度学习设备,以xilinx的mcu开发板为硬件平台,以平
头哥wujian100开源ip为mcu核心,板载串口、hdmi接口和ov5640摄像头。

技术总结
本发明提供一种嵌入式设备神经网络模型推理方法,属于模型量化、神经网络、嵌入式设备领域,本发明支持解析训练好的模型、计算图构建、计算图优化、模型量化、模型序列化、推理时计算图构建、模型推理、模型损失评估以及模型部署。通过上述方式,实现了从模型解析到模型部署的整套流程,并且面向嵌入式设备定制,对内存和计算效率进行优化。内存和计算效率进行优化。内存和计算效率进行优化。


技术研发人员:陈其宾 魏子重 段强 姜凯 李锐
受保护的技术使用者:山东浪潮科学研究院有限公司
技术研发日:2023.03.29
技术公布日:2023/7/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐