一种面向FPGA部署的轻量神经网络设计和量化方法技术

技术编号:38099638 阅读:11 留言:0更新日期:2023-07-06 09:16
本发明专利技术公开了一种面向FPGA部署的轻量神经网络设计和量化方法,包括:以ShuffleNet v2为基础,对网络进行优化设计,获得基准网络;对基准网络进行训练获得全精度模型M0,判断准确率是否达到要求;按照基准网络结构,面向硬件量化部署进行基准量化方法设计;在全精度模型M0的基础上,使用基准量化方法量化训练得到量化模型M1,接下来每次都以上一次得到的量化模型M

【技术实现步骤摘要】
一种面向FPGA部署的轻量神经网络设计和量化方法


[0001]本专利技术涉及深度学习
,具体涉及一种面向FPGA部署的轻量神经网络设计和量化方法。

技术介绍

[0002]在医疗检测、边缘计算等一些现实任务中,神经网络需要在资源有限的嵌入式设备上被实时的执行,由于功耗、尺寸、资源和速度的限制,使用现场可编程门阵列(Field Programmable Gate Array,FPGA)加速神经网络推理得到了广泛的研究和应用。虽然已经出现了不少性能良好的FPGA加速器,但是大多数FPGA加速器都是在硬件端去加速成熟的神经网络。然而,大多数主流的神经网络都是基于CPU/GPU平台去设计的,FPGA与CPU/GPU有着完全不同的硬件结构和特性,这使得很多在CPU/GPU平台上适用的网络结构在FPGA上难以适用。此外,主流的网络模型参数大多是32bit/64bit的浮点数,虽然浮点数具有更高的精度,但在FPGA上部署十分困难。以上问题需要硬件层面进行大量的优化设计,这大大加剧了FPGA加速器的开发和应用的难度。

技术实现思路

[0003]本专利技术的目的在于提供一种面向FPGA部署的轻量神经网络设计和量化方法。
[0004]实现本专利技术目的的技术解决方案为:第一方面,本专利技术提供一种面向FPGA部署的轻量神经网络设计和量化方法,包括以下步骤:
[0005]步骤S1、以ShuffleNet v2为基础,对网络进行优化设计,获得基准网络;
[0006]步骤S2、对基准网络结构调整,优化算法和损失函数,进行训练获得全精度模型M0;
[0007]步骤S3、根据测试集准确率判断M0是否达到要求,若满足则进入步骤S4;不满足则更改网络结构,修改优化函数、学习率和损失函数这些参数的数值,并转至步骤S2重新训练;
[0008]步骤S4、按照基准网络结构,面向硬件量化部署进行基准量化方法设计;
[0009]步骤S5、在全精度模型M0的基础上,使用基准量化方法量化训练得到量化模型M1;
[0010]步骤S6、在量化模型M
i
‑1的基础上,使用基准量化方法量化训练得到量化模型M
i
,其中i>1;
[0011]步骤S7、计算M
i
在测试集上的准确率比M0减少了多少,即量化带来的准确率损失,若该值小于设定的阈值,则进入步骤S8;否则转至步骤S继续量化训练;
[0012]步骤S8、得到量化模型Mi,用于后续FPGA硬件部署。
[0013]第二方面,本专利技术提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法的步骤。
[0014]第三方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该程序
被处理器执行时实现第一方面所述的方法的步骤。
[0015]第四方面,本专利技术提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所述的方法的步骤。
[0016]本专利技术与现有技术相比,其显著优点为:(1)提出的网络结构简单,十分轻量化,网络是硬件友好的,非常适合FPGA部署,在保证准确率的前提下,参数量、计算量和内存占用大大减小;(2)在保证精度损失的情况下,网络激活和权重能够量化到极低的位宽,能大大降低FPGA的资源消耗。
附图说明
[0017]图1是本专利技术面向FPGA部署的轻量神经网络设计和量化方法的流程图。
[0018]图2是本专利技术基准网络中的block结构图,左侧为基础block,右侧为下采样block。
[0019]图3为不同位宽下的训练精度图。
[0020]图4为量化模型在不同位宽下的准确率变化图。
[0021]图5为模型评价指标对比结果。
具体实施方式
[0022]如图1所示,本专利技术提出一种面向FPGA部署的轻量神经网络设计和量化方法,在网络层面解决FPGA加速器的部分设计难题,降低FPGA加速器的硬件设计难度,为FPGA加速器的硬件设计提供软件协同。
[0023]本专利技术提出的方法所获得的神经网络在结构上对FPGA十分友好,网络的参数量、计算量和内存占用大大降低,非常适合在FPGA上进行加速部署。
[0024]结合图1,面向FPGA部署的轻量神经网络设计和量化方法,包括以下步骤:
[0025]步骤S1、以ShuffleNet v2为基础,对网络进行优化设计,获得基准网络;
[0026]步骤S2、对基准网络结构调整,优化算法和损失函数,进行训练获得全精度模型M0;
[0027]步骤S3、根据测试集准确率判断M0是否达到要求,若满足则进入步骤S4;不满足则更改网络结构,修改优化函数、学习率和损失函数这些参数的数值,并转至步骤S2重新训练;
[0028]步骤S4、按照基准网络结构,面向硬件量化部署进行基准量化方法设计;
[0029]步骤S5、在全精度模型M0的基础上,使用基准量化方法量化训练得到量化模型M1;
[0030]步骤S6、在量化模型M
i
‑1的基础上,使用基准量化方法量化训练得到量化模型M
i
,其中i>1;
[0031]步骤S7、计算M
i
在测试集上的准确率比M0减少了所少,即量化带来的准确率损失,若该值小于设定的阈值,则进入步骤S8;否则转至步骤S继续量化训练;
[0032]步骤S8、得到量化模型Mi,用于后续FPGA硬件部署。
[0033]作为一种具体示例,步骤S1中,以ShuffleNet v2为基础,对网络进行优化设计,获得基准网络,具体如下:
[0034]S11、使用分解的方法,将所有的3x3Conv层分解成1x1Conv层和3x3DWConv层,步长全部设置为1;
[0035]S12、将所有步长为1的3x3DWConv层替换成步长为1的3x3Shift层,将所有步长为2的3x3DWConv分解成步长为1的3x3Shift层和步长为2的最大池化层;
[0036]S13、移动最大池化层的位置,将1x1Conv层

3x3Shift层

最大池化层顺序变为1x1Conv层

最大池化层

3x3Shift层;
[0037]S14、将输入图像分辨率大小从224x224变成256x256,除了block结构中的1x1Conv层外,其他的1x1Conv层输出通道数设置为输入通道数的2倍,所有的最大池化层的池化核大小设置为2x2,步长为2;
[0038]S15、删除网络中下采样block左分支上的3x3Shift层,仅保留最大池化层和1x1Conv层;
[0039]S16、去除网络中的批归一化层,删除所有卷积层和全连接层偏置。
[0040]作为一种具本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向FPGA部署的轻量神经网络设计和量化方法,其特征在于,包括以下步骤:步骤S1、以ShuffleNet v2为基础,对网络进行优化设计,获得基准网络;步骤S2、对基准网络结构调整,优化算法和损失函数,进行训练获得全精度模型M0;步骤S3、根据测试集准确率判断M0是否达到要求,若满足则进入步骤S4;不满足则更改网络结构,修改优化函数、学习率和损失函数这些参数的数值,并转至步骤S2重新训练;步骤S4、按照基准网络结构,面向硬件量化部署进行基准量化方法设计;步骤S5、在全精度模型M0的基础上,使用基准量化方法量化训练得到量化模型M1;步骤S6、在量化模型M
i
‑1的基础上,使用基准量化方法量化训练得到量化模型M
i
,其中i>1;步骤S7、计算M
i
在测试集上的准确率比M0减少了多少,即量化带来的准确率损失,若该值小于设定的阈值,则进入步骤S8;否则转至步骤S继续量化训练;步骤S8、得到量化模型Mi,用于后续FPGA硬件部署。2.根据权利要求1所述的面向FPGA部署的轻量神经网络设计和量化方法,其特征在于,步骤S1中,以ShuffleNet v2为基础,对网络进行优化设计,获得基准网络,具体如下:S11、使用分解的方法,将所有的3x3Conv层分解成1x1Conv层和3x3DWConv层,步长全部设置为1;S12、将所有步长为1的3x3DWConv层替换成步长为1的3x3Shift层,将所有步长为2的3x3DWConv分解成步长为1的3x3Shift层和步长为2的最大池化层;S13、移动最大池化层的位置,将1x1Conv层

3x3Shift层

最大池化层顺序变为1x1Conv层

最大池化层

3x3Shift层;S14、将输入图像分辨率大小从224x224变成256x256,除了block结构中的1x1Conv层外,其他的1x1Conv层输出通道数设置为输入通道数的2倍,所有的最大池化层的池化核大小设置为2x2,步长为2;S15、删除网络中下采样block左分支上的3x3Shift层,仅保留最大池化层和1x1Conv层;S16、去除网络中的批归一化层,删除所有卷积层和全连接层偏置。3.根据权利要求2所述的所述的面向FPGA部署的轻量神经网络设计和量化方法,其特征在于,步骤S12中,将所有步长为1的3x3DWConv层替换成步长为1的3x3Shift层,将所有步长为2的3x3DWConv分解成步长为1的3x3Shift层和步长为2的最大池化层,3x3Shift层的具体计算如下:令输入特征图为D
F
表示输入特征图的高度和宽度,M表示通道尺寸,则3x3...

【专利技术属性】
技术研发人员:韩露露明晓钰叶剑波崔珂李翔宇
申请(专利权)人:南京理工大学
类型:发明
国别省市:

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

1