[发明专利]一种基于快速滤波算法的卷积神经网络加速器电路有效

专利信息
申请号: 201910003898.0 申请日: 2019-01-03
公开(公告)号: CN109948784B 公开(公告)日: 2023-04-18
发明(设计)人: 王巍;周凯利;王伊昌;王广;赵汝法;袁军 申请(专利权)人: 重庆邮电大学
主分类号: G06N3/063 分类号: G06N3/063
代理公司: 重庆启恒腾元专利代理事务所(普通合伙) 50232 代理人: 黎志红
地址: 400065*** 国省代码: 重庆;50
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 快速 滤波 算法 卷积 神经网络 加速器 电路
【权利要求书】:

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模块用于实现激活函数的拟合,及全连接层计算单元用于实现特征分类;

所述卷积神经网络加速器电路是在FPGA上实现的逐层加速硬件架构,通过利用快速滤波算法,该架构并没有为每层都设计特定的硬件,而是设计一组硬件,然后将其重用于所需要使用的不同层中,其中行缓存循环控制单元决定了何时启动每个硬件单元,实现CNN中多个层的计算;

所述卷积计算加速单元是基于快速滤波算法实现的,二维的快速滤波算法更适用于卷积神经网络的二维矩阵卷积,当为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)

然后,再从j的方向上组成Xij和Hij,矢量Xij和Hij的长度为N2/4;

Xij=[x(i,j)',x(i,j+2)',…,x(i,j+N-2)']T                        (4)

Hi,j=[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;

所述卷积计算加速单元包括:像素数据预处理运算模块、卷积核系数预处理运算模块、二维子滤波通道模块和二维滤波后处理模块,所述像素数据预处理运算模块、卷积核系数预处理运算模块与二维子滤波通道模块的输入端相连接,所述二维子滤波通道模块的输出端与二维滤波后处理模块的输入端相连接,所述二维滤波后处理的输出端输出卷积结果信号,其中,二维子滤波通道模块共包含9个并行的子滤波通道,每一个子滤波通道均为N2/4阶的滤波器,令N为偶数,二维子滤波通道模块的输出经过二维滤波后处理模块将其转化成后置加法矩阵中的数据形式,并通过加法运算将输出作为卷积结果信号。

2.根据权利要求1所述的一种基于快速滤波算法的卷积神经网络加速器电路,其特征在于,所述全连接层计算单元包括:内积运算模块和激活函数sigmoid运算模块,内积运算模块用于把所有局部特征结合起来抽象成全局特征,激活函数sigmoid运算模块用于非线性变换,非线性函数sigmoid在FPGA上不能直接实现,使用查找表和多项式相结合的方法对sigmoid函数进行分段逼近。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910003898.0/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top