本发明涉及模型量化、神经网络、嵌入式设备领域,尤其涉及一种嵌入式设备神经网络模型推理方法。
背景技术:
1、随着深度学习相关技术不断发展,神经网络模型在很多行业和场景得到广泛应用。将深度学习技术应用到物联网领域,尤其是设备数量众多的嵌入式设备上,存在着巨大的市场需求。目前常用的方式是将数据上传到服务器,在服务器上运行神经网络模型,并将推理结果传回到边缘端设备。这种方式不利于数据隐私的保护,并且对带宽等资源要求较高。另外,嵌入式设备计算和存储资源有限,而神经网络模型往往需要较大的计算量和内存。因此,将神经网络模型直接部署到嵌入式设备,面临着较大的困难,需要采用轻量化模型,并对模型进行压缩。除此之外,目前主流的推理框架都需要操作系统,难以直接应用在没有操作系统的嵌入式设备上。
技术实现思路
1、为了解决以上技术问题,本发明提供了一种嵌入式设备神经网络模型推理方法。实现了从模型解析到模型部署的整套流程,并且面向嵌入式设备定制,对内存和计算效率进行优化。
2、本发明的技术方案是:
3、一种嵌入式设备神经网络模型推理方法,步骤如下:
4、首先,训练神经网络模型;收集训练数据,构建并训练神经网络模型。
5、其次,模型解析及计算图构建;构建模型解析模块,解析训练框架训练后的模型,针对不同的训练框架,针对性的设计解析方法;
6、第三,计算图优化;计算图优化包括算子融合,算子融合将算子组合融合成一个算子;
7、第四,模型量化;构建神经网络模型量化模块,对优化后的计算图进行量化;
8、第五,模型序列化并生成模型文件;
9、第六,解析序列化数据并构建推理时计算图;
10、第七,模型推理;在推理框架中,实现各算子的计算过程;
11、第八,评估模型损失并完善推理框架和量化策略;
12、第九,模型部署;将推理框架部署到嵌入式设备,并通过摄像头实现实时图像数据的抓取,对图像数据进行预处理,然后进行模型推理,将推理结果通过后串口及hdmi输出到外围设备。
13、进一步的,
14、构建一套用于嵌入式设备的神经网络模型的表示方法,抽取神经网络模型的各种元素,将模型表示成有向无环图的方式,使用该表示方法表示解析后的计算图。
15、计算图优化的同时,保留其他计算图优化方法的接口,方便扩展计算图优化功能。
16、通过可配置的方式,配置模型量化参数,将模型权重量化为整型数据,并通过校准数据集估计激活值量化因子,以及计算逆量化因子。
17、将模型数据整合到c语言代码文件中;模型序列化,即将计算图的图数据表示成c语言数组的方式,并相应地提出一套数据获取的规则;基于上述计算图数据,生成model_data.h和model_data.c模型文件。
18、将模型文件model_data.h和model_data.c整合到c语言推理框架中;在推理框架中,使用数据获取规则,提取相应的计算图数据,并构建推理时计算图。
19、遍历推理时计算图,按照算子类型,调用相应的算子计算过程;采用内存池的方式存放计算图的激活值,以减少内存的碎片化及内存占用。
20、构建一套模型损失评估指标,评估推理过程导致的误差以及模型量化误差;通过对部分数据进行推理,收集模型输出结果,通过和采用浮点数的训练框架输出进行比较,得到模型损失结果;基于模型损失情况,指导调试推理过程中问题;如模型损失为模型量化导致,则改进模型量化策略。
21、进一步的,
22、可采用基于risc-v架构的边缘端深度学习设备,以xilinx的mcu开发板为硬件平台,以平头哥wujian100开源ip为mcu核心,板载串口、hdmi接口和ov5640摄像头。
23、本发明的有益效果是
24、本发明实现了从模型解析到模型部署的整套流程,并且面向嵌入式设备定制,对内存和计算效率进行优化,具有较高的实用价值和创新价值。
1.一种嵌入式设备神经网络模型推理方法,其特征在于,
2.根据权利要求1所述的方法,其特征在于,
3.根据权利要求2所述的方法,其特征在于,
4.根据权利要求3述的方法,其特征在于,
5.根据权利要求4所述的方法,其特征在于,
6.根据权利要求5所述的方法,其特征在于,
7.根据权利要求6所述的方法,其特征在于,
8.根据权利要求7所述的方法,其特征在于,
9.根据权利要求1所述的方法,其特征在于,