[发明专利]应用于二值化卷积神经网络的硬件加速器及其数据处理方法有效
申请号: | 201911055498.0 | 申请日: | 2019-10-31 |
公开(公告)号: | CN110780923B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 杜高明;涂振兴;陈邦溢;杨振文;张多利;宋宇鲲;李桢旻 | 申请(专利权)人: | 合肥工业大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06N3/04;G06N3/063;G06N3/08 |
代理公司: | 安徽省合肥新安专利代理有限责任公司 34101 | 代理人: | 陆丽莉;何梅生 |
地址: | 230009 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种应用于二值化卷积神经网络的硬件加速器及其数据处理方法,该硬件加速器包括:神经网络参数存储模块、矩阵生成器模块、卷积计算阵列模块、池化层模块以及全局控制模块;神经网络参数存储模块中预存有二值化灰度图片和每一层的神经网络训练参数;矩阵生成器负责准备卷积运算的输入数据;卷积计算阵列负责卷积层的卷积计算;池化层模块负责对卷积层的输出进行池化操作;全局控制模块负责控制整个系统正常工作。本发明旨在更加提升卷积神经网络运行速度,减少网络部署在硬件平台上消耗的资源以及计算资源,同时也减低网络运行的功耗。 | ||
搜索关键词: | 应用于 二值化 卷积 神经网络 硬件 加速器 及其 数据处理 方法 | ||
【主权项】:
1.一种应用于二值化卷积神经网络的硬件加速器,其特征是:所述二值化卷积神经网络包括:K层二值化卷积层、K层激活函数层、K批量标准化层、K层池化层以及一层全连接分类输出层;并将所述批量标准化层中的训练参数个数合并为一个;/n所述二值化卷积神经网络对大小为N×M的输入二值化灰度图片进行训练,得到每一层的神经网络训练参数;/n所述的硬件加速电路包括:神经网络参数存储模块、矩阵生成器模块、卷积计算阵列模块、池化层模块以及全局控制模块;/n所述神经网络参数存储模块中预存有所述输入二值化灰度图片和每一层的神经网络训练参数;所述神经网络训练参数包括:权重参数、批量标准化参数;且所存入的输入二值化灰度图片是以数据“0”表示所述二值化灰度图片中像素点“-1”,以数据“1”表示所述二值化灰度图片中像素点“1”;/n所述矩阵生成器模块是由数据输入电路、特征图的数据寄存器组、数据输出电路组成;/n定义所述二值化卷积神经网络中的当前层数为k,并初始化k=1;/n在二值化卷积神经网络的第k层计算下,所述全局控制模块发送第一次矩阵生成开始信号作为输入特征图中若干个行的第一次滑动计算给所述矩阵生成器模块;若k=1,则所述输入特征图为输入二值化灰度图片,若k>1,则所述输入特征图为每一层的中间特征图;/n所述数据输入电路接收到矩阵生成开始信号之后,并根据当前滑动计算的类型分别进行处理:/n若当前滑动计算的类型为上边缘计算,则在第一个周期的上升沿到来时,从所述神经网络参数存储模块中读出当前滑动计算下的第一行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中;在第二个周期的上升沿到来时,将所述第一个寄存器中的数据存入第二个寄存器中,再从所述神经网络参数存储模块中读出当前滑动计算下的第二行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中,由所述数据输出电路输出第一个寄存器和第二个寄存器中的数据;/n若当前滑动计算的类型为非边缘计算,则在第一个周期的上升沿到来时,从所述神经网络参数存储模块中读出当前滑动计算下的第一行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中;在第二个周期的上升沿到来时,将所述第一个寄存器中的数据存入第二个寄存器中,再从所述神经网络参数存储模块中读出当前滑动计算下的第二行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中;在第三个周期的上升沿到来时,将所述第二个寄存器中的数据存入第三个寄存器中,将所述第一个寄存器中的数据存入第二个寄存器中,再从所述神经网络参数存储模块中读出当前滑动计算下的第三行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中,由所述数据输出电路输出第一个寄存器、第二个寄存器和第三个寄存器中的数据;/n若当前滑动计算的类型为下边缘计算,则在第一个周期的上升沿到来时,将所述第三个寄存器中存入的当前滑动计算下的倒数第三行输入特征图的数据移出,将所述第二个寄存器中当前滑动计算下的倒数第二行输入特征图的数据存入第三个寄存器中,将所述第一个寄存器中当前滑动计算下的倒数第一行输入特征图的数据存入第二个寄存器中,由所述数据输出电路输出第二个寄存器和第三个寄存器中的数据;/n所述卷积计算阵列模块是由参数读取模块、6:2压缩树模块、输出接口模块组成;/n在二值化卷积神经网络的第k层计算下,所述参数读取模块判断获取数据输出电路输出的当前滑动计算下的数据作为输入数据,并从所述神经网络参数存储模块中读取当前滑动计算下的神经网络训练参数后一起发送给所述6:2压缩树模块;/n所述6:2压缩树模块由同或门阵列、popcount模块和加法器组成;/n所述同或门阵列接收当前滑动计算下的输入数据和神经网络训练参数,并根据当前滑动计算的类型分别进行处理,得到同或结果:/n若当前滑动计算的类型为上边缘计算,且为左边缘计算,则将权重参数的[4:5]位与第二个寄存器给出的数据的[0:1]位取同或运算,将权重参数的[7:8]位与第一个寄存器给出的数据的[0:1]位取同或运算;/n若当前滑动计算的类型为上边缘计算,且非左右边缘计算,则将权重参数的[3:5]位与第二个寄存器给出的特征图的数据的[a:a+2]位取同或运算,将权重参数的[6:8]位与第一个寄存器给出的数据的[a:a+2]位取同或运算,其中,0≤a≤M;/n若当前滑动计算的类型为上边缘计算,且为右边缘计算,则将权重参数的[3:4]位与第二个寄存器给出的据的[M-1:M]位取同或运算,将权重参数的[6:7]位与第一个寄存器给出的数据的[M-1:M]位取同或运算;/n若当前滑动计算的类型为非上下边缘计算,且为左边缘计算,则将权重参数的[1:2]位与第三个寄存器给出的数据的[0:2]位取同或运算,将权重参数的[4:5]位与第二个寄存器给出的数据的[0:2]位取同或运算,将权重参数的[7:8]位与第一个寄存器给出的数据的[0:2]位取同或运算;/n若当前滑动计算的类型为非上下边缘计算,且非左右边缘计算,则将权重参数的[0:2]位与第三个寄存器给出的数据的[c:c+2]位取同或运算,将权重参数的[3:5]位与第二个寄存器给出的数据的[c:c+2]位取同或运算,将权重参数的[6:8]位与第一个寄存器给出的数据的[c:c+2]位取同或运算,其中,0≤c≤M;/n若当前滑动计算的类型为非上下边缘计算,且为右边缘计算,则将权重参数的[0:1]位与第三个寄存器给出的数据的[M-1:M]位取同或运算,将权重参数的[3:4]位与第二个寄存器给出的数据的[M-1:M]位取同或运算,将权重参数的[6:7]位与第一个寄存器给出的数据的[M-1:M]位取同或运算;/n若当前滑动计算的类型为下边缘计算,且为左边缘计算,则将权重参数的[1:2]位与第三个寄存器给出的数据的[0:1]位取同或运算,则将权重参数的[4:5]位与第二个寄存器给出的数据的[0:1]位取同或运算;/n若当前滑动计算的类型为下边缘计算,且为非左右边缘计算,则将权重参数的[0:2]位与第三个寄存器给出的数据的[b:b+2]位取同或运算,将权重参数的[3:5]位与第二个寄存器给出的数据的[b:b+2]位取同或运算,其中,0≤b≤M;/n若当前滑动计算的类型为下边缘计算,且为右边缘计算,则将权重参数的[0:1]位与第三个寄存器给出的数据的[M-1:M]位取同或运算,将权重参数的[3:4]位与第二个寄存器给出的数据的[M-1:M]位取同或运算;/n所述popcount模块对所述同或结果中的“1”进行计数,得到计数结果;/n所述加法器将计数结果和所述批量标准化参数进行累加,得到的累加结果取符号位后,作为第k层二值化卷积层的输出特征图;/n所述第k层池化层对所述第k层二值化卷积层的输出特征图进行池化处理,得到的池化结果作为第k+1层二值化卷积层的输入特征图;/n若k=K时,则第K-1层池化层的输出结果作为所述全连接分类输出层的输入特征图,再经过在二值化卷积神经网络的第K层计算,再由所述加法器得到的累加结果并取符号位后作为所述硬件加速器对所述二值化灰度图片中数字的识别结果。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201911055498.0/,转载请声明来源钻瓜专利网。