应用于二值化卷积神经网络的硬件加速器及其数据处理方法技术

技术编号:23314819 阅读:62 留言:0更新日期:2020-02-11 17:42
本发明专利技术公开了一种应用于二值化卷积神经网络的硬件加速器及其数据处理方法,该硬件加速器包括:神经网络参数存储模块、矩阵生成器模块、卷积计算阵列模块、池化层模块以及全局控制模块;神经网络参数存储模块中预存有二值化灰度图片和每一层的神经网络训练参数;矩阵生成器负责准备卷积运算的输入数据;卷积计算阵列负责卷积层的卷积计算;池化层模块负责对卷积层的输出进行池化操作;全局控制模块负责控制整个系统正常工作。本发明专利技术旨在更加提升卷积神经网络运行速度,减少网络部署在硬件平台上消耗的资源以及计算资源,同时也减低网络运行的功耗。

Hardware accelerator applied to binary convolution neural network and its data processing method

【技术实现步骤摘要】
应用于二值化卷积神经网络的硬件加速器及其数据处理方法
本专利技术属于人工智能硬件设计领域,尤其涉及一种应用于二值化卷积神经网络的加速器及其数据处理方法。
技术介绍
卷积神经网络源自于人工神经网络。作为一种多层感知网络,对图像的旋转、按比例缩小或者放大以及图像的平移等多种图像变换形式具有很强的适应性,可以快速提取图像特征。它采用权值共享网络结构,这种结构与生物神经网络结构具有很强的相似性,这样的结构减少了权值的数量,从而降低了网络模型的复杂度,当对网络输入多维图像时这样的优点体现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。数字虽然笔画简单,类型只有十种。但由于数字笔画比较简单,差别相对较小,手写数字形状的千差万别导致识别难度增大,精度较低。而使用卷积神经网络可以大大提高识别精度,目前识别率已经可以达到99.33%。但是,在有些识别过程中,需要很快的识别速度,并且高精度。卷积神经网络虽然具有以上优点,但是不可避免的需要进行大量的卷积计算,图像分辨率越高,卷积步长越小,需要的计算资源更多本文档来自技高网...

【技术保护点】
1.一种应用于二值化卷积神经网络的硬件加速器,其特征是:所述二值化卷积神经网络包括:K层二值化卷积层、K层激活函数层、K批量标准化层、K层池化层以及一层全连接分类输出层;并将所述批量标准化层中的训练参数个数合并为一个;/n所述二值化卷积神经网络对大小为N×M的输入二值化灰度图片进行训练,得到每一层的神经网络训练参数;/n所述的硬件加速电路包括:神经网络参数存储模块、矩阵生成器模块、卷积计算阵列模块、池化层模块以及全局控制模块;/n所述神经网络参数存储模块中预存有所述输入二值化灰度图片和每一层的神经网络训练参数;所述神经网络训练参数包括:权重参数、批量标准化参数;且所存入的输入二值化灰度图片是以...

【技术特征摘要】
1.一种应用于二值化卷积神经网络的硬件加速器,其特征是:所述二值化卷积神经网络包括:K层二值化卷积层、K层激活函数层、K批量标准化层、K层池化层以及一层全连接分类输出层;并将所述批量标准化层中的训练参数个数合并为一个;
所述二值化卷积神经网络对大小为N×M的输入二值化灰度图片进行训练,得到每一层的神经网络训练参数;
所述的硬件加速电路包括:神经网络参数存储模块、矩阵生成器模块、卷积计算阵列模块、池化层模块以及全局控制模块;
所述神经网络参数存储模块中预存有所述输入二值化灰度图片和每一层的神经网络训练参数;所述神经网络训练参数包括:权重参数、批量标准化参数;且所存入的输入二值化灰度图片是以数据“0”表示所述二值化灰度图片中像素点“-1”,以数据“1”表示所述二值化灰度图片中像素点“1”;
所述矩阵生成器模块是由数据输入电路、特征图的数据寄存器组、数据输出电路组成;
定义所述二值化卷积神经网络中的当前层数为k,并初始化k=1;
在二值化卷积神经网络的第k层计算下,所述全局控制模块发送第一次矩阵生成开始信号作为输入特征图中若干个行的第一次滑动计算给所述矩阵生成器模块;若k=1,则所述输入特征图为输入二值化灰度图片,若k>1,则所述输入特征图为每一层的中间特征图;
所述数据输入电路接收到矩阵生成开始信号之后,并根据当前滑动计算的类型分别进行处理:
若当前滑动计算的类型为上边缘计算,则在第一个周期的上升沿到来时,从所述神经网络参数存储模块中读出当前滑动计算下的第一行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中;在第二个周期的上升沿到来时,将所述第一个寄存器中的数据存入第二个寄存器中,再从所述神经网络参数存储模块中读出当前滑动计算下的第二行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中,由所述数据输出电路输出第一个寄存器和第二个寄存器中的数据;
若当前滑动计算的类型为非边缘计算,则在第一个周期的上升沿到来时,从所述神经网络参数存储模块中读出当前滑动计算下的第一行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中;在第二个周期的上升沿到来时,将所述第一个寄存器中的数据存入第二个寄存器中,再从所述神经网络参数存储模块中读出当前滑动计算下的第二行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中;在第三个周期的上升沿到来时,将所述第二个寄存器中的数据存入第三个寄存器中,将所述第一个寄存器中的数据存入第二个寄存器中,再从所述神经网络参数存储模块中读出当前滑动计算下的第三行输入特征图的数据存入所述数据寄存器组中的第一个寄存器中,由所述数据输出电路输出第一个寄存器、第二个寄存器和第三个寄存器中的数据;
若当前滑动计算的类型为下边缘计算,则在第一个周期的上升沿到来时,将所述第三个寄存器中存入的当前滑动计算下的倒数第三行输入特征图的数据移出,将所述第二个寄存器中当前滑动计算下的倒数第二行输入特征图的数据存入第三个寄存器中,将所述第一个寄存器中当前滑动计算下的倒数第一行输入特征图的数据存入第二个寄存器中,由所述数据输出电路输出第二个寄存器和第三个寄存器中的数据;
所述卷积计算阵列模块是由参数读取模块、6:2压缩树模块、输出接口模块组成;
在二值化卷积神经网络的第k层计算下,所述参数读取模块判断获取数据输出电路输出的当前滑动计算下的数据作为输入数据,并从所述神经网络参数存储模块中读取当前滑动计算下的神经网络训练参数后一起发送给所述6:2压缩树模块;
所述6:2压缩树模块由同或门阵列、popcount模块和加法器组成;
所述同或门阵列接收当前滑动计算下的输入数据和神经网络训练参数,并根据当前滑动计算的类型分别进行处理,得到同或结果:
若当前滑动计算的类型为上边缘计算,且为左边缘计算,则将权重参数的[4:5]位与第二个寄存器给出的数据的[0:1]位取同或运算,将权重参数的[7:8]位与第一个寄存器给出的数据的[0:1]位取同或运算;
若当前滑动计算的类型为上边缘计算,且非左右边缘计算,则将权重参数的[3:5]位与第二个寄存器给出的特征图的数据的[a:a+2]位取同或运算,将权重参数的[6:8]位与第一个寄存器给出的数据的[a:a+2]位取同或运算,其中,0≤a≤M;
若当前滑动计算的类型为上边缘计算,且为右边缘计算,则将权重参数的[3:4]位与第二个寄存器给出的据的[M-1:M]位取同或运算,将权重参数的[6:7]位与第一个寄存器给出的数据的[M-1:M]位取同或运算;
若当前滑动计算的类型为非上下边缘计算,且为左边缘计算,则将权重参数的[1:2]位与第三个寄存器给出的数据的[0:2]位取同或运算,将权重参数的[4:5]位与第二个寄存器给出的数据的[0:2]位取同或运算,将权重参数的[7:8]位与第一个寄存器给出的数据的[0:2]位取同或运算;
若当前滑动计算的类型为非上下边缘计算,且非左右边缘计算,则将权重参数的[0:2]位与第三个寄存器给出的数据的[c:c+2]位取同或运算,将权重参数的[3:5]位与第二个寄存器给出的数据的[c:c+2]位取同或运算,将权重参数的[6:8]位与第一个寄存器给出的数据的[c:c+2]位取同或运算,其中,0≤c≤M;
若当前滑动计算的类型为非上下边缘计算,且为右边缘计算,则将权重参数的[0:1]位与第三个寄存器给出的数据的[M-1:M]位取同或运算,将权重参数的[3:4]位与第二个寄存器给出的数据的[M-1:M]位取同或运算,将权重参数的[6:7]位与第一个寄存器给出的数据的[M-1:M]位取同或运算;
若当前滑动计算的类型为下边缘计算,且为左边缘计算,则将权重参数的[1:2]位与第三个寄存器给出的数据的[0:1]位取同或运算,则将权重参数的[4:5]位与第二个寄存器给出的数据的[0:1]位取同或运算;
若当前滑动计算的类型为下边缘计算,且为非左右边缘计算,则将权重参数的[0:2]位与第三个寄存器给出的数据的[b:b+2]位取同或运算,将权重参数的[3:5]位与第二个寄存器给出的数据的[b:b+2]位取同或运算,其中,0≤b≤M;
若当前滑动计算的类型为下边缘计算,且为右边缘计算,则将权重参数的[0:1]位与第三个寄存器给出的数据的[M-1:M]位取同或运算,将权重参数的[3:4]位与第二个寄存器给出的数据的[M-1:M]位取同或运算;
所述popcount模块对所述同或结果中的“1”进行计数,得到计数结果;
所述加法器将计数结果和所述批量标准化参数进行累加,得到的累加结果取符号位后,作为第k层二值化卷积层的输出特征图;
所述第k层池化层对所述第k层二值化卷积层的输出特征图进行池化处理,得到的池化结果作为第k+1层二值化卷积层的输入特征图;
若k=K时,则第K-1层池化层的输出结果作为所述全连接分类输出层的输入特征图,再经过在二值化卷积神经网络的第K层计算,再由所述加法器得到的累加结果并取符号位后作为所述硬件加速器对所述二值化灰度图片中数字的识别结果。


2.一种应用于二值化卷积神经网络的硬件加速器的数据处理方法,其特征是按如下步骤进行:
步骤1、构建二值化卷积神...

【专利技术属性】
技术研发人员:杜高明涂振兴陈邦溢杨振文张多利宋宇鲲李桢旻
申请(专利权)人:合肥工业大学
类型:发明
国别省市:安徽;34

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

1