一种基于FPGA的改进神经网络硬件加速方法及装置制造方法及图纸

技术编号:36216233 阅读:25 留言:0更新日期:2023-01-04 12:13
本发明专利技术涉及图像处理技术领域,尤其涉及一种基于FPGA的改进神经网络硬件加速方法及装置,包括通过迁移学习、数据增强、多尺度训练、余弦退火对SSD_MobilenetV1网络进行训练;对训练后的SSD_MobilenetV1网络进行结构化剪枝,以卷积核或每个网络层为基本单位进行剪枝;采用QAT算法,引入伪量化的操作进行训练,用于模拟量化过程的误差;将量化后的SSD_MobilenetV1网络转换为计算图。本发明专利技术同时使用FPGA和ARM处理器对模型进行推理,将卷积网络模型中耗时的卷积算子在FPGA执行,其它算子在ARM处理器中执行,能够实现网络模型的快速推理,并且功耗较低,利于部署到终端。利于部署到终端。利于部署到终端。

【技术实现步骤摘要】
一种基于FPGA的改进神经网络硬件加速方法及装置


[0001]本专利技术涉及图像处理
,尤其涉及一种基于FPGA的改进神经网络硬件加速方法及装置。

技术介绍

[0002]神经网络已经被广泛应用于图像处理领域进行对目标的识别,而基于深度卷积神经网络的图像处理模型往往具有很大的参数量和计算量。对于传统的通用处理器,比如中央处理器(Central Processing Unit,CPU),有着丰富的控制逻辑,能够进行各种运算,进而支持各种模型的运行,但是只有少量的逻辑计算单元,计算资源较少,当用于网络模型推理时效率低,速度慢;对于并行处理器,比如图形处理器(Graphics Processing Unit,GPU),能够进行数据的并行快速计算,加快模型的推理速度,但是体积大,功耗高,并且价格昂贵,难以应用在终端领域;对于专用硬件ASIC(专用集成电路),能够实现各类资源自行分配,达到更块的计算速度并且更低的功耗,推理时间大大加快,但是由于开发周期长,难以应用新的技术和网络。
[0003]而FPGA(现场可编程逻辑阵列),能够达到高推理速度,低功耗,低成本的要求,但是更换网络模型时往往需要重新设计结构,对网络模型的适应性较弱。

技术实现思路

[0004]针对现有算法的不足,本专利技术同时使用FPGA和ARM处理器对模型进行推理,将卷积网络模型中耗时的卷积算子在FPGA执行,其它算子在ARM处理器中执行,能够实现网络模型的快速推理,并且功耗较低,利于部署到终端,同时对其它除SSD_MobilenetV1以外的卷积神经网络模型也有很好的支持。
[0005]本专利技术所采用的技术方案是:一种基于FPGA的改进神经网络硬件加速方法包括以下步骤:
[0006]步骤一、通过迁移学习、数据增强、多尺度训练、余弦退火对SSD_MobilenetV1网络进行训练;
[0007]进一步的,余弦退火的函数学习率公式为:
[0008][0009]其中,和表示学习率的范围,T
cur
表示距离上次重启经过的训练轮次,T
i
表示第i次重启需要训练的轮次。
[0010]步骤二、对训练后的SSD_MobilenetV1网络进行结构化剪枝,以卷积核或每个网络层为基本单位进行剪枝;
[0011]进一步的,包括:从第i个卷积层剪掉m
i
个卷积核,过程为:
[0012]S21、对每个卷积核F
i,j
,计算卷积核的权重绝对值之和:
[0013][0014]其中,K
l
表示卷积核的第l层,n
i
为卷积核的层数;
[0015]S22、根据s
j
排序;
[0016]S23、将m
i
个权重绝对值之和最小的卷积核以及对应的特征层剪掉,移除下一个卷积层中与剪掉的特征层相关的卷积核;
[0017]S24、创建第i层和第i+1层的新的权重矩阵;
[0018]S25、当对多层同时剪枝时,采用贪心策略,剪枝过后,模型结构发生变化,再次进行训练,并采用交替剪枝和训练,逐层或逐卷积核剪枝。
[0019]步骤三、采用QAT算法,引入伪量化的操作进行训练,用于模拟量化过程带来的误差;
[0020]进一步的,具体包括:
[0021]在反向传播的过程中,weight在输入卷积之前进行量化,如果有Batch Normalization层,就将Batch Normalization层融入到weight中,激活值在激活函数执行完成之后再进行量化;
[0022]其中浮点数和8bit定点数的转换通过仿射映射完成,公式如下:
[0023]r=S(q

Z)
ꢀꢀ
(3)
[0024][0025][0026][0027]其中,r为要量化的实数;q为量化后的整数;n为量化位宽;S和Z分别是量化尺度和零点;array
max
和array
min
分别为要量化的一系列实数中的最大值和最小值。
[0028]步骤四、将量化后的SSD_MobilenetV1网络转换为计算图;
[0029]基于FPGA的改进神经网络硬件加速方法的装置,包括:AIX总线接口模块、模式配置器模块、数据调度模块、卷积计算模块和数据缓存区,AXI总线接口模块负责FPGA加速器与HPS数据的交换,包括从HPS接收数据,将FPGA加速器的配置信息传输给模式配置器模块,对各个寄存器进行配置准备计算;从DDR中读取卷积计算的特征图和卷积参数,传输到计算数据缓存区;并接收卷积计算结果存储到DDR中;
[0030]模式配置器模块是对HPS传入的配置数据进行解析;对FPGA加速器的各个模块进行配置;
[0031]进一步的,配置的内容包括卷积计算的类型、特征图的尺寸、输入特征图参数和输入输出数据的地址、是否在卷积计算后进行批标准化和激活处理;
[0032]数据调度模块控制FPGA加速器在计算过程中的数据流向,数据调度模块根据输入特征图和卷积参数的地址加载数据至计算数据缓存区;当卷积计算完成后控制计算结果缓存区对卷积计算结果进行接收;
[0033]进一步的,数据缓存区包括:计算数据缓存区和计算结果缓存区,计算数据缓存区采用乒乓操作的设计,当某块缓存区接收完成数据开始进行下一步的卷积计算时,数据调
度模块会控制另一块计算数据缓存区接收下一卷积数据;
[0034]计算结果缓存区采用乒乓操作的设计,当某块计算结果缓存区对上一卷积结果进行存储时,数据调度模块会控制另一块计算结果缓存区接收下一卷积的计算结果。
[0035]卷积计算模块对卷积、深度卷积、批标准化和激活算子的计算;卷积和深度卷积根据硬件资源将卷积核按通道的数量进行分组,每组包含16个通道数,计算完一组后再进行下一组的计算;批标准化和激活算子采用流水线的方式,通道数设置为16。
[0036]本专利技术的有益效果:
[0037]1、相较于传统的基于ARM处理器的模型推理方法,能够在保证网络模型精度的条件下,充分利用FPGA计算资源,提高网络推理速度;
[0038]2、通过迁移学习、数据增强、多尺度训练、余弦退火等训练策略对SSD_MobilenetV1网络进行训练;基于网络模型中每一层的敏感度进行结构化剪枝并且训练;通过Quantization Aware Training方法对模型进行8bit量化压缩模型;在计算图的层面上对网络进行操作融合、prior_box算子离线计算、算子选优操作;利用FPGA的并行计算特性设计加速器对卷积运算进行加速;基于PaddleLite框架进行网络的FPGA+ARM混合推理。
附图说明
[0039]图1是本专利技术的基于FPGA的改进神经网络硬件加速方法流程图;
[0040]图2是本专利技术的伪量化示意图;
[0041]图3是本专利技术的pr本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的改进神经网络硬件加速方法,其特征在于,包括以下步骤:步骤一、通过迁移学习、数据增强、多尺度训练、余弦退火对SSD_MobilenetV1网络进行训练;步骤二、对训练后的SSD_MobilenetV1网络进行结构化剪枝,以卷积核或每个网络层为基本单位进行剪枝;步骤三、采用QAT算法,引入伪量化的操作进行训练,用于模拟量化过程的误差;步骤四、将量化后的SSD_MobilenetV1网络转换为计算图。2.根据权利要求1所述的基于FPGA的改进神经网络硬件加速方法,其特征在于,余弦退火的函数学习率公式为:其中,和表示学习率的范围,T
cur
表示距离上次重启经过的训练轮次,T
i
表示第i次重启需要训练的轮次。3.根据权利要求1所述的基于FPGA的改进神经网络硬件加速方法,其特征在于,步骤二具体包括:从第i个卷积层剪掉m
i
个卷积核,过程为:S21、对每个卷积核F
i,j
,计算卷积核的权重绝对值之和:其中,K
l
表示卷积核的第l层,n
i
为卷积核的层数;S22、根据s
j
排序;S23、将m
i
个权重绝对值之和最小的卷积核以及对应的特征层剪掉,移除下一个卷积层中与剪掉的特征层相关的卷积核;S24、创建第i层和第i+1层的新的权重矩阵;S25、当对多层同时剪枝时,采用贪心策略,剪枝过后,模型结构发生变化,再次进行训练,并采用交替剪枝和训练,逐层或逐卷积核剪枝。4.根据权利要求1所述的基于FPGA的改进神经网络硬件加速方法,其特征在于,步骤三具体包括:在反向传播的过程中,weight在输入卷积之前进行量化,如果有Batch Normalization层,就将Batch Normalization层融入到weight中,激活值在激活函数执行完成后再进行量化;其中,浮点数和8bit定点数...

【专利技术属性】
技术研发人员:宋政伟孙莉于淼张元淳侯俊郑培清张国和
申请(专利权)人:江苏思远集成电路与智能技术研究院有限公司
类型:发明
国别省市:

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

1