1.一种基于快速滤波算法的卷积神经网络加速器电路,其特征在于,包括:输入数据缓存RAM单元、卷积核系数及偏置值缓存RAM单元、行缓存FIFO单元、卷积计算加速单元、偏置&激活函数&池化计算单元、全连接层权值缓存RAM单元、池化层RAM阵列单元、激活函数sigmoid模块及全连接层计算单元。同时,控制单元包括输入数据及卷积核数据缓存控制单元、行缓存循环控制单元、池化数据RAM存储器控制单元、全连接层权值缓存控制单元。所述输入数据缓存RAM单元分别和输入数据及卷积核数据缓存控制单元、行缓存FIFO单元相连接,所述行缓存FIFO单元分别和卷积计算加速单元、池化层RAM阵列单元相连接,卷积核系数及偏置值缓存RAM单元分别和输入数据及卷积核数据缓存控制单元、卷积计算加速单元相连接,所述卷积计算加速单元和偏置&激活函数&池化计算单元相连接,池化层RAM阵列单元分别和池化数据RAM存储器控制单元、行缓存FIFO单元、偏置&激活函数&池化计算单元及全连接层计算单元相连接,全连接层计算单元分别和激活函数sigmoid模块、全连接层权值缓存RAM单元相连接,所述全连接层权值缓存RAM单元和全连接层权值缓存控制单元相连接,其中,输入数据缓存RAM单元用于存储原始图像数据,卷积核系数及偏置值缓存RAM单元用于存储不同的卷积层中卷积核数据及偏置值数据,行缓存FIFO单元用于缓存卷积运算中卷积窗口内的特征数据,卷积计算加速单元用于实现快速滤波算法,以完成特征提取的任务,偏置&激活函数&池化计算单元用于实现非线性变换及下采样,全连接层权值缓存RAM单元用于存储完成神经元全连接的权值数据,池化层RAM阵列单元用于存储池化层中下采样的结果,激活函数sigmoid模块用于实现激活函数的拟合,及全连接层计算单元用于实现特征分类的硬件电路。
2.根据权利要求1所述的一种基于快速滤波算法的卷积神经网络加速器电路,其特征在于,所述卷积神经网络加速器电路是在FPGA上实现的逐层加速硬件架构,通过利用快速滤波算法,该架构并没有为每层都设计特定的硬件,而是设计一组硬件,然后将其重用于所需要使用的不同层中,其中行缓存循环控制单元决定了何时启动每个硬件单元,实现CNN中多个层的计算,实现了一个卷积层,该卷积层被重用于网络中的任何卷积层。
3.根据权利要求1所述的一种基于快速滤波算法的卷积神经网络加速器电路,其特征在于,所述卷积计算加速单元是基于快速滤波算法实现的,二维的快速滤波算法更适用于卷积神经网络的二维矩阵卷积,当为4并行输出时,为了便于理解,只演示一张输入特征图的卷积过程,卷积核用x(i,j)表示,输出用Y(m,n)表示,卷积计算公式如式(1)所示,其中N表示卷积核的尺寸;M表示输出特征图的尺寸,当用快速滤波器算法实现二维卷积运算时,当为4并行输出时,滤波器系数x(i,j)和滤波器输入h(i,j)从i的方向上按间隔2顺序取值如下:x(i,j)'=[x(i,j),x(i+2,j),…,x(i+N-2,j)]T (2)
h(i,j)'=[h(i,j),h(i+2,j),…,h(i+N-2,j)]T (3)
2
然后,再从j的方向上组成Xij和Hij,矢量Xij和Hij的长度为N/4;
Xij=[x(i,j)',x(i,j+2)',…,x(i,j+N-2)']T (4)
Hij=[h(i,j)',h(i,j+2)',…,h(i,j+N-2)']T (5)
其中每个元素分别是当前N×N卷积窗口中(i,j)处的卷积核系数和图像像素,因此,对于公式(4)的4并行输出:Y(2m,2n),Y(2m+1,2n),Y(2m,2n+1),Y(2m+1,2n+1),可写成公式(6)的形式,4并行输出其实是输出特征图中一个2×2的矩阵块:在等式(6)的右侧中,H矩阵在对角线方向上有4个相同的矢量对:H2m+1,2n,H2m+1,2n+
1,H2m+1,2n+1,H2m+1,2n+2,因此可以将(6)分解为式(7)的形式;
其中Bi,j和A0,A1可用下列式子表示,
Bi,j=Hi,j+Hi+1,j (8)
A0=X00-X10 (9)
A1=X01-X11 (10)
其中的乘积项(B2m,2n+B2m,2n+1)X00等是二维滤波器,这个4并行快速滤波器算法将二维卷积运算分解为9个子滤波器和预/后处理来计算一个4输出的块,这些预/后处理运算是通过增加加减法运算数目来减少乘法运算数目,如果忽略这些小开销,对于4并行快速滤波器算法,每个输出采样的乘法复杂度从N2减小到9N2/16。
4.根据权利要求1所述的一种基于快速滤波算法的卷积神经网络加速器电路,其特征在于,所述卷积计算加速单元包括:像素数据预处理运算模块、卷积核系数预处理运算模块、二维子滤波通道模块和二维滤波后处理模块,所述像素数据预处理运算模块、卷积核系数预处理运算模块与二维子滤波通道模块的输入端相连接,所述二维子滤波通道模块的输出端与二维滤波后处理模块的输入端相连接,所述二维滤波后处理的输出端输出卷积结果信号,其中,二维子滤波通道模块共包含9个并行的子滤波通道,每一个子滤波通道均为N2/
4阶的滤波器,令N为偶数。二维子滤波通道模块的输出经过二维滤波后处理模块将其转化成后置加法矩阵中的数据形式,并通过加法运算将输出作为卷积结果信号。
5.根据权利要求1-4之一所述的一种基于快速滤波器算法的卷积神经网络加速器电路,其特征在于,所述全连接层计算单元包括:内积运算模块和激活函数sigmoid运算模块,内积运算模块用于把所有局部特征结合起来抽象成全局特征,激活函数sigmoid运算模块用于非线性变换,非线性函数sigmoid在FPGA上不能直接实现,使用查找表和多项式相结合的方法对sigmoid函数进行分段逼近。