一种基于位掩码的卷积压缩计算方法及系统技术方案

技术编号:28840373 阅读:30 留言:0更新日期:2021-06-11 23:38
本发明专利技术提出一种基于位掩码的卷积压缩计算方法及系统,输入矩阵F大小为h*w,卷积核K大小为k

【技术实现步骤摘要】
一种基于位掩码的卷积压缩计算方法及系统
本专利技术涉及卷积计算
,尤其是一种基于位掩码的卷积压缩计算方法及系统。
技术介绍
卷积神经网络模型基本都是过参数化的,即大部分参数是冗余的,恰当地删除部分参数,对模型效果几乎没有影响。通过模型剪枝的方式,将神经网络中数值为0或接近于0的参数去除,模型仍可以保持相当的效果。很多模型经过剪枝后,模型大小仅有原始大小的1/10,计算量也随之减少至原始计算量的1/10。然而,由于0值数据是随机分布的,模型剪枝产生的稀疏权重,对大规模并行计算并不友好。0值数据随机分布导致并行计算时,计算单元空闲,数据计算暂停,浪费算力和时间。除此之外,卷积计算过程中产生的特征图,经过激活函数(例如ReLU)之后也是稀疏的,而且稀疏率至少50%以上,全连接层输出的稀疏率甚至超过90%。特征图的稀疏性随着输入图像的变化而变化,随机性更强,在计算过程中完全不可预测。针对0值随机分布问题,现有技术采取的方案一般是进行0值判断,若参数数值为0,则产生标记表示其数值为0,标记过的参数不参与计算,例如DaDianNao芯片中使用的Cnvlutin方案;还有稀疏矩阵计算方法,建立权重矩阵的稀疏表示,产生非0值的行列索引,非0数据连续存储,之后对非0数据进行乘法计算,最后通过恢复临时结果来产生最终输出,但是稀疏矩阵计算只考虑了权重的稀疏性,并不能解决特征图的稀疏计算问题。
技术实现思路
针对上述现有卷积计算存在的技术问题,本专利技术提出一种基于位掩码的卷积压缩计算方法及系统。<br>本专利技术保护一种基于位掩码的卷积压缩计算方法,输入矩阵F大小为h*w,卷积核K大小为k1h*k2w,包括以下步骤:步骤1,提取输入矩阵F的非0数据形成行矩阵Df,提取输入矩阵F的位掩码形成矩阵Mf,提取卷积核K的非0数据形成行矩阵Dk,提取卷积核K的位掩码形成矩阵Mk,步骤2,将行矩阵Dk中的每个元素与行矩阵Df中的元素逐一相乘,得到多个乘法结果矩阵;步骤3,利用矩阵Mk和矩阵Mf将每个乘法结果矩阵恢复成卷积核K大小的恢复矩阵;步骤4,对每个乘法结果矩阵得到的恢复矩阵进行对位累加,得到卷积计算结果。进一步的,所述步骤3具体包括以下步骤:步骤3.1,记卷积核K非0数据坐标的第一索引为(i,j),每个乘法结果矩阵依序对应一个第一索引,记输入矩阵F非0数据坐标的第二索引为(x,y),每个第二索引依序对应乘法结果矩阵中的一个数值;步骤3.2,以(h-k1h+1)*(w-k2w+1)大小的选择框按照一定步长在输入矩阵F上移动,针对每一个对应第一索引(i,j)的选择框,若第二索引(x,y)满足则保留该第二索引(x,y)对应的乘法结果矩阵中的数值,否则舍弃,sx和sy分别为选择框在行方向和列方向上的步长;步骤3.3,将针对每一个对应第一索引(i,j)的选择框保留下来的数值,依序填入其非0数据位置上形成选择框大小的恢复矩阵。本专利技术还保护一种基于上述的卷积压缩计算方法的卷积压缩计算系统,包括位掩码模块、乘法计算模块、数据恢复模块、累加模块;所述位掩码模块用于提取输入矩阵F的非0数据形成行矩阵Df,提取输入矩阵F的位掩码形成矩阵Mf,提取卷积核K的非0数据形成行矩阵Dk,提取卷积核K的位掩码形成矩阵Mk;所述乘法计算模块用于计算行矩阵Dk中的每个元素与行矩阵Df中的元素逐一相乘,的结果,得到多个乘法结果矩阵;所述数据恢复模块用于利用矩阵Mk和矩阵Mf将每个乘法结果矩阵恢复成卷积核K大小的恢复矩阵;所述累加模块用于对每个乘法结果矩阵得到的恢复矩阵进行对位累加,得到卷积计算结果。本专利技术还保护一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述卷积压缩计算方法的步骤。本专利技术可以避免卷积运算过程中0值参与乘法计算,降低了算力和功耗的浪费,提高了卷积计算速度。附图说明图1为实施例1卷积压缩计算过程示意图;图2为实施例1恢复矩阵形成示意图;图3为实施例2卷积压缩计算过程示意图;图4为实施例2恢复矩阵形成示意图;图5为实施例3卷积压缩计算过程示意图;图6为实施例3恢复矩阵形成示意图;图7为实施例4卷积压缩计算过程示意图;图8为实施例4恢复矩阵形成示意图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本专利技术限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本专利技术的原理和实际应用,并且使本领域的普通技术人员能够理解本专利技术从而设计适于特定用途的带有各种修改的各种实施例。实施例1输入矩阵大小为5*5,卷积核大小为3*3。利用卷积核K对输入矩阵F进行卷积压缩计算方法(参照图1)包括以下步骤:1、提取输入矩阵F的非0数据形成行矩阵Df=[123456789],提取输入矩阵F的位掩码形成矩阵2、提取卷积核K的非0数据形成行矩阵Dk=[1234],提取卷积核K的位掩码形成矩阵3、将行矩阵Dk中的每个元素与行矩阵Df中的元素逐一相乘,得到4个乘法结果矩阵,分别是Df*1、Df*2、Df*3、Df*4。4、利用矩阵Mk和矩阵Mf将Df*1、Df*2、Df*3、Df*4恢复成卷积核K大小的恢复矩阵hDf1、hDf2、hDf3、hDf4,具体流程为:⑴记卷积核K非0数据坐标的第一索引为(i,j),每个乘法结果矩阵依序对应一个第一索引,本实施例中第一索引(i,j)取(0,0)、(2,0)、(1,1)、(2,2),分别对应Df*1、Df*2、Df*3、Df*4;⑵记输入矩阵F非0数据坐标的第二索引为(x,y),每个第二索引依序对应乘法结果矩阵中的一个数值,本实施例中第二索引(x,y)取值参照表1;⑶以3*3大小的选择框在行方向和列方向均以1为步长在输入矩阵F上移动,针对每一个对应第一索引(i,j)的选择框,若第二索引(x,y)满足则保留该第二索引(x,y)对应的乘法结果矩阵中的数值,否则舍弃,sx和sy分别为选择框在行方向和列方向上的步长;本实施例中Df*1、Df*2、Df*3、Df*4中每一数值的取舍结果见下表1;表1⑷将针对每一个对应第一索引(i,j)的选择框保留下来的数值,依序填入其非0数据位置上形成选择框大小的恢复矩阵hDf1、hDf2、hDf3、hDf4,恢复矩阵hDf1、hDf2、hDf3、hDf4形成示意图参照图2。5、对hDf1、hDf2、hDf3、hDf4进行对位累加,得到卷积计算结果。实施例2输入矩阵大小为5*6,卷积核大小为3*3。利用卷积核K对输入矩阵F进行卷积压缩计算方法(参照图3)包括以下步骤:1、提取输入矩阵本文档来自技高网...

【技术保护点】
1.一种基于位掩码的卷积压缩计算方法,输入矩阵F大小为h*w,卷积核K大小为k

【技术特征摘要】
1.一种基于位掩码的卷积压缩计算方法,输入矩阵F大小为h*w,卷积核K大小为k1h*k2w,其特征在于,包括以下步骤:
步骤1,提取输入矩阵F的非0数据形成行矩阵Df,提取输入矩阵F的位掩码形成矩阵Mf,提取卷积核K的非0数据形成行矩阵Dk,提取卷积核K的位掩码形成矩阵Mk;
步骤2,将行矩阵Dk中的每个元素与行矩阵Df中的元素逐一相乘,得到多个乘法结果矩阵;
步骤3,利用矩阵Mk和矩阵Mf将每个乘法结果矩阵恢复成卷积核K大小的恢复矩阵;
步骤4,对每个乘法结果矩阵得到的恢复矩阵进行对位累加,得到卷积计算结果。


2.根据权利要求1所述的卷积压缩计算方法,其特征在于,所述步骤3具体包括以下步骤:
步骤3.1,记卷积核K非0数据坐标的第一索引为(i,j),每个乘法结果矩阵依序对应一个第一索引,记输入矩阵F非0数据坐标的第二索引为(x,y),每个第二索引依序对应乘法结果矩阵中的一个数值;
步骤3.2,以(h-k1h+1)*(w-k2w+1)大小的选择框按照一定步长在输入矩阵F上移动,针对每一个对应第一索引(i,j)的选择框,若第二索引(x,y)满足则保留该第二索引...

【专利技术属性】
技术研发人员:张笑林广栋黄光红顾大晔刘国成
申请(专利权)人:安徽芯纪元科技有限公司
类型:发明
国别省市:安徽;34

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

1