一种面向微控制器的卷积神经网络部署和优化方法技术

技术编号:34149626 阅读:64 留言:0更新日期:2022-07-14 19:49
一种面向微控制器的卷积神经网络部署和优化方法,包含卷积神经网络模型的设计、卷积计算内存的优化以及卷积神经网络的部署三部分。卷积神经网络模型的设计基于神经网络架构搜索,搜索适用于微控制器计算量、参数量和内存需求小的卷积神经网络模型;对卷积神经网络中常用到的标准卷积、深度卷积和点卷积分别进行优化,减少卷积神经网络推理过程中的内存占用,使卷积神经网络可以运行在更多内存受限的微控制器上;提供一种运行在微控制器上的卷积神经网络从构建到应用的方法,提高了微控制器运行卷积神经网络模型的易用性和实用性。运行卷积神经网络模型的易用性和实用性。运行卷积神经网络模型的易用性和实用性。

A deployment and optimization method of convolutional neural network for microcontroller

【技术实现步骤摘要】
一种面向微控制器的卷积神经网络部署和优化方法


[0001]本专利技术涉及微控制器设计领域,具体涉及一种面向微控制器的卷积神经网络部署和优化方法。

技术介绍

[0002]微控制器通常只有几十到几百KB的内存空间和存储空间,运行频率从几MHz到几百MHz,而主流卷积神经网络模型参数量从几M到几百M不等,难以满足微控制器的存储空间约束。针对轻量化卷积神经网络模型的需求,学术界和工业界提出一些设计轻量化神经网络的方法,尽管有效降低了模型的参数量和计算量,但对于微控制器来说仍有不足。以轻量化卷积神经网络模型MobileNet V3为例,参数量有2.9M,即使在权重量化后也无法存储到微控制器上,较大的计算量也使得在微控制器上难以实现实时检测。此外学术界主要关注卷积神经网络的准确率、计算量和参数量,而忽视卷积神经网络在推理过程中的内存消耗,而内存消耗大小也决定该卷积神经网络能否运行在微控制器上。
[0003]目前卷积神经网络计算过程中需要大量内存,难以在微控制器上运行,使得微控制器在卷积神经网络实际应用中主要负责采集数据,并将传感器读数传送到服务器,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种面向微控制器的卷积神经网络部署和优化方法,其特征在于:所述方法包含卷积神经网络模型的设计、卷积计算内存的优化以及卷积神经网络的部署三部分;卷积神经网络模型的设计中,首先搜索得到指标最优的网络结构,组成超级网络,结合微控制器的指标要求得到目标网络;然后对目标网络进行压缩,并评估压缩后的网络准确率以及相应的设计奖励函数;卷积计算内存的优化中,分别对于标准卷积、深度卷积和点卷积三种计算方式的内容使用进行优化,基于内存复用实现减少内存消耗;卷积神经网络的部署中,基于卷积神经网络模型的设计,还包括卷积神经网络模型验证和卷积神经网络模型部署;其中,模型验证包括计算机端模型验证和微控制器端模型验证;模型部署包括数据采集、数据预处理和卷积神经网络检测。2.根据权利要求1所述的一种面向微控制器的卷积神经网络部署和优化方法,其特征在于:使用神经网络架构搜索技术在设定的搜索空间中针对准确率、计算时间、内存消耗三个指标搜索最优的网络结构,由搜索空间中的模块组成超级网络,在超级网络的损失函数中加入微控制器端的计算时间消耗和内存空间消耗,和准确率一起作为优化的目标;在搜索结束后,选取超级网络每层中概论最大的模块作为该层保留的模块,去除其它模块,与其它层保留的模块共同组成搜索到的目标网络。3.根据权利要求2所述的一种面向微控制器的卷积神经网络部署和优化方法,其特征在于:模型压缩中,将上一步搜索到的模型作为基准模型,代理部分使用深度确定性策略梯度从第l层中接受嵌入,输出稀疏比率并根据稀疏比率对l层进行模型压缩,接着在环境部分移动到第l+1层进行操作,在完成对所有层的操作之后,评估整个网络的准确率;最后将包含准确率、参数量和实际计算时间的奖励反馈给代理部分,根据微控制器的应用场景设计了以下奖励算法:计了以下奖励算法:式中Reward为获得的奖励,Lat表示模型计算时间,Mem表示模型的内存消耗,Error为系数。4.根据权利要求1所述的一种面向微控制器的卷积神经网络部署和优化方法,其特征在于:对于标准卷积,根据卷积输出层大小和卷积输入层大小之前的关系进行分类处理;当卷积输出层大小不大于卷积输入层大小时,分配内存空间m;卷积输入层部分数据与卷积核运算后填满内存空间m;将此时内存空间m中下层数据复制到卷积输入层适当位置,覆盖原有输入数据;将内存空间m中上层数据复制到内存空间m中下层数据,覆盖原有数据;按照顺序计算卷积输入层部分数据与卷积核运算后填充内存空间m中上层数据;将此时内存空间m中下层数据复制到卷积输入层适当位置,覆盖原有输入数据;重复上述流程,直至计算完卷积输入层所有数据;对计算后存放在输入层的数据做reshape操作,使其符合输出层的通道数、宽度和高度;当卷积输出层大小大于卷积输入层大小时,分配内存空间m和内存空间M;卷积输入层部分数据与卷积核运算后填满内存空间M;按照计算顺序计算卷积输入层部分与卷积核运
算后填满内存空间m;将此时内存空间m中下层数据复制到卷积输入层适当位置,覆盖原有输入数据;将内存空间m中上层数据复制到内存空间m中下层数据,覆盖原有数据;按照顺序计算卷积输入层部分数据与卷积核运算后填充内存空间m中上层数据;将此时内存空间m中下层数据复制到卷积输入层适当位置,覆盖原有输入数据;重复步骤上述流程,直至计算完卷积输入层所有数据;对计算后存放在输入层的数据和M中的数据连接起来,并做reshape操作,使其符合输出层的通道数、宽度和高度。5.根据权利要求1所述的一种面向微控制器的卷积神经网络部署和优化方法,其特征在于:对于深度卷积计算,分配内存空...

【专利技术属性】
技术研发人员:孙雁飞王子牛亓晋许斌
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1