当前位置: 首页 > 专利查询>清华大学专利>正文

一种应用于卷积神经网络的加速方法和加速器技术

技术编号:18895719 阅读:47 留言:0更新日期:2018-09-08 11:32
本发明专利技术提供一种应用于卷积神经网络的加速方法和加速器,所述方法包括:S1,对于卷积神经网络中的任一层,分别计算该层输出的各特征图的稠密度;S2,将该层输出的各所述特征图的稠密度与多个预设阈值进行比较,根据比较结果将各所述特征图进行稀疏编码;其中,不同的比较结果对应不同的稀疏编码方式;S3,基于该层下一层的卷积层对稀疏编码后的各所述特征图和预先稀疏编码的所述卷积神经网络中的各卷积核进行卷积。本发明专利技术减少卷积神经网络中卷积运算的计算量,提高了运算速度。

An acceleration method and accelerator applied to convolutional neural networks

The present invention provides an accelerating method and an accelerator for convolutional neural networks. The method includes: S1. For any layer of convolutional neural networks, the densities of each characteristic map output by the layer are calculated separately; S2. The densities of each characteristic map output by the layer are compared with a plurality of preset thresholds according to the ratio. Comparing results sparsely encode each feature map; among them, different comparison results correspond to different sparse coding methods; S3 convolutes each sparsely coded feature map and each convolution kernel of the pre-sparsely coded convolution neural network based on the convolution layer of the lower layer of the layer. The invention reduces the computation amount of convolution operation in convolution neural network and improves the computation speed.

【技术实现步骤摘要】
一种应用于卷积神经网络的加速方法和加速器
本专利技术属于运算优化
,更具体地,涉及一种应用于卷积神经网络的加速方法和加速器。
技术介绍
卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种前馈神经网络,其人工神经元可以响应一部分覆盖范围内的周围单元,适用于对大型图像的处理。卷积神经网络广泛应用于图像识别、语音识别等领域,但计算量非常大。由于卷积神经网络中的激活函数ReLU(Rectifiedlinearunit,修正线性单元)会造成大量稀疏的特征图(featuremap);同时,采用剪枝等方法训练卷积神经网络会造成大量稀疏的权重数据(weightdata)。利用特征图和权重数据的稀疏性可以大幅提高卷积神经网络的计算效率。目前,已有很多方法基于卷积神经网络中特征图和权重数据的稀疏性提高计算速度。这些方法大致可以分为两类,一类着眼于跳过0值。例如有的方法去除输入中的0值,从而减少输入为0的无效计算。另一类采取忽略零值的方法。例如有的方法在输入数据为0时,不执行乘法操作,从而减少运算。但这些方法都着眼于处理稀疏神经网络本身,假定神经网络稀疏是前提。然而实际上卷积神经网络中各层输出特征图可能是稀疏的,可能是非稀疏的。实际运用中卷积神经网络各层的权重数据和特征图的稠密度一般在5%-90%之间分布。稀疏矩阵是指数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律的矩阵。现有技术中一方面只能对稀疏的卷积神经网络进行处理,在卷积神经网络不是稀疏的情况下计算量很大,运算速度低;另一方面现有技术只能处理卷积神经中权重数据或特征图是稀疏的情况,不能处理权重数据和特征图都是稀疏的情况。
技术实现思路
为克服上述卷积神经网络运算速度低的问题或者至少部分地解决上述问题,本专利技术提供了一种应用于卷积神经网络的加速方法和加速器。根据本专利技术的第一方面,提供一种应用于卷积神经网络的加速方法,包括:S1,对于卷积神经网络中的任一层,分别计算该层输出的各特征图的稠密度;S2,将该层输出的各所述特征图的稠密度与多个预设阈值进行比较,根据比较结果将各所述特征图进行稀疏编码;其中,不同的比较结果对应不同的稀疏编码方式;S3,基于该层下一层的卷积层对稀疏编码后的各所述特征图和预先稀疏编码的所述卷积神经网络中的各卷积核进行卷积。具体地,所述步骤S1具体包括:对于任一所述特征图,统计该特征图中非0元素的个数和该特征图中所有元素的总个数;将该特征图中非0元素的个数与该特征图中所有元素的总个数之间的比值作为该特征图的稠密度。具体地,所述预设阈值包括第一预设阈值和第二预设阈值;其中,所述第一预设阈值小于所述第二预设阈值;相应地,所述步骤S2具体包括:若各所述特征图的稠密度小于所述第一预设阈值,则将各所述特征图编码为稀疏矩阵存储格式;若各所述特征图的稠密度大于或等于所述第一预设阈值,且小于所述第二预设阈值,则将各所述特征图中的0元素进行标记;若各所述特征图的稠密度大于或等于所述第二预设阈值,则不对各所述特征图进行稀疏编码。具体地,所述步骤S3之前还包括:计算训练好的卷积网络中各卷积核的稠密度;若各所述卷积核的稠密度小于所述第一预设阈值,则将各所述卷积核编码为稀疏矩阵存储格式;若各所述卷积核的稠密度大于或等于所述第一预设阈值,且小于所述第二预设阈值,则将各所述卷积核中的0元素进行标记;若各所述卷积核的稠密度大于或等于所述第二预设阈值,则不对各所述卷积核进行稀疏编码。具体地,所述步骤S3具体包括:当各所述特征图或各所述卷积核中存在所述标记时,对各所述特征图或各所述卷积核中标记对应的元素不进行计算。根据本专利技术另一方面提供一种应用于卷积神经网络的加速器,包括:神经网络计算阵列模块和动态稀疏调整模块;其中,所述动态稀疏调整模块用于计算卷积神经网络各层输出的各特征图的稠密度,将各所述特征图的稠密度与多个预设阈值进行比较,根据比较结果对各所述特征图进行稀疏编码;其中,不同的比较结果对应的不同稀疏编码方式;所述神经网络计算阵列模块用于对稀疏编码后的各所述特征图和预先稀疏编码的所述卷积神经网络中的各卷积核进行卷积操作。具体地,所述动态稀疏调整模块包括线上稠密度识别模块、输出临时寄存模块、动态编码模块和动态稀疏控制模块;其中,所述线上稠密度识别模块用于对于任一所述特征图,统计该特征图中0元素的个数和该特征图中所有元素的总个数;将该特征图中0元素的个数与该特征图中所有元素的总个数之间的比值作为该特征图的稠密度;所述输出临时寄存模块用于存储卷积神经网络中各层输出的各所述特征图;所述动态稀疏控制模块用于将所述线上稠密度识别模块输出的各所述特征图的稠密度与多个预设阈值进行比较;所述动态编码模块用于根据比较结果将所述输出临时寄存模块中各所述特征图进行稀疏编码。具体地,所述预设阈值包括第一预设阈值和第二预设阈值;其中,所述第一预设阈值小于所述第二预设阈值;相应地,所述动态编码模块具体用于:若各所述特征图的稠密度小于所述第一预设阈值,则将各所述特征图编码为稀疏矩阵存储格式;若各所述特征图的稠密度大于或等于所述第一预设阈值,且小于所述第二预设阈值,则将各所述特征图中的0元素进行标记;若各所述特征图的稠密度大于或等于所述第二预设阈值,则不对各所述特征图进行稀疏编码。具体地,所述动态编码模块还用于:若预先计算的各所述卷积核的稠密度小于所述第一预设阈值,则将各所述卷积核编码为稀疏矩阵存储格式;若各所述卷积核的稠密度大于或等于所述第一预设阈值,且小于所述第二预设阈值,则将各所述卷积核中的0元素进行标记;若各所述卷积核的稠密度大于或等于所述第二预设阈值,则不对各所述卷积核进行稀疏编码。具体地,所述神经网络计算阵列模块具体用于:当各所述特征图或各所述卷积核中存在所述标记时,对各所述特征图或各所述卷积核中标记对应的元素不进行计算。本专利技术提供一种应用于卷积神经网络的加速方法和加速器,该方法通过将卷积神经网络中各层输出的各特征图的稠密度与多个预设阈值进行比较,获取各所述特征图的稀疏状态,将不同稀疏状态的特征图进行不同方式的稀疏编码,然后基于各层下一层的卷积层对稀疏编码后的各特征图和预先稀疏编码的卷积神经网络中的卷积核进行卷积操作,减少卷积神经网络中卷积运算的计算量,提高运算速度。附图说明图1为本专利技术实施例提供的应用于卷积神经网络的加速方法整体流程示意图;图2为本专利技术实施例提供的应用于卷积神经网络的加速器整体结构示意图;图3为本专利技术实施例提供的应用于卷积神经网络的加速器中极限能量效率测试结果示意图;图4为本专利技术实施例提供的应用于卷积神经网络的加速器中极限能量效率测试结果对比示意图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。在本专利技术的一个实施例中提供一种应用于卷积神经网络的加速方法,图1为本专利技术实施例提供的应用于卷积神经网络的加速方法整体流程示意图,该方法包括:S1,对于卷积神经网络中的任一层,分别计算该层输出的各特征图的稠密度;具体地,所述卷积神经网络中可以包括池化层或不包括池化层。首先对所述卷积神经网络进行训练,训练完成后卷积神经网络中的卷积核不再变动,因此卷积神经网络中的卷积本文档来自技高网
...

【技术保护点】
1.一种应用于卷积神经网络的加速方法,其特征在于,包括:S1,对于卷积神经网络中的任一层,分别计算该层输出的各特征图的稠密度;S2,将该层输出的各所述特征图的稠密度与多个预设阈值进行比较,根据比较结果将各所述特征图进行稀疏编码;其中,不同的比较结果对应不同的稀疏编码方式;S3,基于该层下一层的卷积层对稀疏编码后的各所述特征图和预先稀疏编码的所述卷积神经网络中的各卷积核进行卷积。

【技术特征摘要】
1.一种应用于卷积神经网络的加速方法,其特征在于,包括:S1,对于卷积神经网络中的任一层,分别计算该层输出的各特征图的稠密度;S2,将该层输出的各所述特征图的稠密度与多个预设阈值进行比较,根据比较结果将各所述特征图进行稀疏编码;其中,不同的比较结果对应不同的稀疏编码方式;S3,基于该层下一层的卷积层对稀疏编码后的各所述特征图和预先稀疏编码的所述卷积神经网络中的各卷积核进行卷积。2.根据权利要求1所述的方法,其特征在于,所述步骤S1具体包括:对于任一所述特征图,统计该特征图中非0元素的个数和该特征图中所有元素的总个数;将该特征图中非0元素的个数与该特征图中所有元素的总个数之间的比值作为该特征图的稠密度。3.根据权利要求1所述的方法,其特征在于,所述预设阈值包括第一预设阈值和第二预设阈值;其中,所述第一预设阈值小于所述第二预设阈值;相应地,所述步骤S2具体包括:若各所述特征图的稠密度小于所述第一预设阈值,则将各所述特征图编码为稀疏矩阵存储格式;若各所述特征图的稠密度大于或等于所述第一预设阈值,且小于所述第二预设阈值,则将各所述特征图中的0元素进行标记;若各所述特征图的稠密度大于或等于所述第二预设阈值,则不对各所述特征图进行稀疏编码。4.根据权利要求3所述的方法,其特征在于,所述步骤S3之前还包括:计算训练好的卷积网络中各卷积核的稠密度;若各所述卷积核的稠密度小于所述第一预设阈值,则将各所述卷积核编码为稀疏矩阵存储格式;若各所述卷积核的稠密度大于或等于所述第一预设阈值,且小于所述第二预设阈值,则将各所述卷积核中的0元素进行标记;若各所述卷积核的稠密度大于或等于所述第二预设阈值,则不对各所述卷积核进行稀疏编码。5.根据权利要求3或4所述的方法,其特征在于,所述步骤S3具体包括:当各所述特征图或各所述卷积核中存在所述标记时,对各所述特征图或各所述卷积核中标记对应的元素不进行计算。6.一种应用于卷积神经网络的加速器,其特征在于,包括:神经网络计算阵列模块和动态稀疏调整模块;其中,所述动态稀疏调整模块用于计算卷积神经网络中各层输出的各特征图的稠密度,将各所述特征图的...

【专利技术属性】
技术研发人员:刘勇攀袁哲岳金山杨华中李学清王智博
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

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

1