【技术实现步骤摘要】
一种面向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、对基准网络结构调整,优 ...
【技术保护点】
【技术特征摘要】
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...
【专利技术属性】
技术研发人员:韩露露,明晓钰,叶剑波,崔珂,李翔宇,
申请(专利权)人:南京理工大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。