[发明专利]基于FPGA的卷积神经网络IP核有效
申请号: | 201910038533.1 | 申请日: | 2019-01-16 |
公开(公告)号: | CN109784489B | 公开(公告)日: | 2021-07-30 |
发明(设计)人: | 常瀛修;廖立伟;曹健 | 申请(专利权)人: | 北京大学软件与微电子学院;常瀛修;廖立伟;曹健;于敦山 |
主分类号: | G06N3/08 | 分类号: | G06N3/08;G06N3/04;G06F9/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102600 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 卷积 神经网络 ip | ||
1.基于FPGA的卷积神经网络IP核,其特征在于,具体IP核和组成模块包含卷积运算IP核、池化运算IP核、全连接运算IP核、冒泡法卷积层、冒泡法池化层、全连接层、特征图存储模块和参数存储模块;所述各IP核构成的神经网络层与参数存储模块和特征图存储模块内部互连,共同构成的硬件结构与所需的卷积神经网络算法结构保持一致;
所述的冒泡法池化层,包含冒泡法控制器和池化运算IP核:
1)冒泡法控制器的四个时钟序列分别为读输入特征图序列、列有效序列、行有效序列和池化过程序列;四个时钟序列的等待区间为输入特征图数据进入池化运算IP核输入特征图缓存器的时间,该区间池化结果无效;列有效序列每个有效的池化结果相隔一个无效的池化结果,表示池化滤波列步长为2;行有效序列每段有效行的结果相隔一段无效行的结果,表示池化滤波行步长为2;假设池化过程为液体,列有效序列和行有效序列的无效池化结果为气体,则池化过程相当于从液体中排出多余气体,故称为冒泡法;
2)通过堆叠与输入特征图深度相同个数的池化运算IP核构成池化层的单个池化核,与冒泡法控制器共同构成冒泡法池化层;
与所述的冒泡法池化层同理可得到所述的冒泡法卷积层。
2.根据权利要求1所述的基于FPGA的卷积神经网络IP核,其特征在于,所述的卷积运算IP核,包含输入特征图缓存器、权值参数缓存器、乘法器、加法器和激活函数模块:
1)卷积运算IP核每个时钟周期按行逐个读取特征图内特征点形成数据流;输入特征图缓存器为可配置深度的寄存器组,用于移位缓存输入特征图的数据流,其根据输入特征图的行列数修改寄存器组深度,支持不同规模的卷积神经网络,且固定地址区间的输入特征图数据与乘法器连接;
2)权值参数缓存器为可配置深度的寄存器组,用于移位缓存权值参数,当寄存器组被权值参数填满后固定不变;权值参数缓存器的硬件结构与输入特征图缓存器相同,即相同固定地址区间的权值参数数据与乘法器连接;
3)与输入特征图缓存器和权值参数缓存器固定地址区间连接的乘法器与加法器组成一个乘法-加法对,特征图内特征点和对应的权值参数构成完整的卷积运算;
4)卷积运算IP核采用常见的ReLU激活函数,激活函数模块为MUX多路选择器,等同于公式f(x)=max(0,x)。
3.根据权利要求1所述的基于FPGA的卷积神经网络IP核,其特征在于,所述的池化运算IP核,包含输入特征图缓存器和比较器:
1)输入特征图缓存器为可配置深度的寄存器组,用于移位缓存输入特征图数据流,可根据输入特征图的行列数修改寄存器组深度以支持不同规模的卷积神经网络,且固定地址区间的输入特征图数据与比较器连接;
2)比较器的输入端口与输入特征图缓存器的4个固定地址区间连接,输出端口为此4个数据中的最大值。
4.根据权利要求1所述的基于FPGA的卷积神经网络IP核,其特征在于,所述的全连接运算IP核,包含计数器、累加器、乘法器和加法器:
1)乘法器分别输入一一对应的输入节点数据和权值参数,完成输入节点和权值参数的乘法运算;
2)累加器由一个寄存器和一个加法器构成,乘法器的运算结果输入累加器的寄存器并与下一个时钟周期的乘法结果累加,组成乘累加运算;
3)计数器控制乘累加运算的迭代周期,完成一个迭代周期后计数器控制乘累加结果与输出节点对应的偏值参数相加。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学软件与微电子学院;常瀛修;廖立伟;曹健;于敦山,未经北京大学软件与微电子学院;常瀛修;廖立伟;曹健;于敦山许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910038533.1/1.html,转载请声明来源钻瓜专利网。