一种基于winograd算法的卷积神经网络优化方法技术

技术编号:20390808 阅读:584 留言:0更新日期:2019-02-20 03:13
本发明专利技术公开一种基于winograd算法的卷积神经网络优化方法,包括:(1)确定待优化的卷积神经网络,所述待优化的卷积神经网络包括至少一个卷积层,每个卷积层包括多个过滤器,每个过滤器有多个通道,每个通道对应一个卷积核;(2)在每个卷积层中,根据每个卷积核的绝对值之和进行排序,按比例选取绝对值之和小的卷积核进行裁剪,并更新每个卷积层的面具矩阵;(3)基于所述面具矩阵使用winograd算法确定每个过滤器对应的输出特征图。本发明专利技术基于winograd算法在转化卷积核时添加一个面具矩阵来识别已被裁剪的卷积核;使用预设矩阵W、X、M对裁剪的模型进行计算,以此避免局部非结构化带来的计算劣势。

【技术实现步骤摘要】
一种基于winograd算法的卷积神经网络优化方法
本专利技术涉及人工智能
,更具体地,涉及一种基于winograd算法的卷积神经网络优化方法。
技术介绍
AlphaGo成功打败人类后,深度学习模型就越来越吸引人们的目光,特别是卷积神经网络模型已经在商业领域和研究领域都表现出了令人惊讶地成就。因为深度学习模型举世瞩目的成就,将其部署在以手机为例的移动设备端的需求也就应运而生,然而这些移动设备的CPU、内存等资源都远不足以运行庞大的深度学习模型。为了解决这类问题,对深度学习模型的优化加速方法就很快热门起来。这两年出现了很多对深度模型的推断优化加速方法,首当其冲的就是对卷积神经网络的加速优化,这主要是因为卷积神经网络通常用来处理图像数据,众所周知,图像的数据量是除了视频数据外最大的,因此对卷积神经网络的计算需求和内存需求的优化势在必行。因为卷积神经网络中有大量冗余参数,所以现有的卷积神经网络优化方式主要有两类:非结构化稀疏和非结构化稀疏。非结构化稀疏虽然可以实现更大程度的稀疏化,但却会使得训练好的卷积神经网络模型中的卷积核的结构会遭到破坏变成非结构化,非结构化的卷积核在与结构化的输入图片数据计算时会出现稀疏矩阵与密集矩阵相乘,严重影响计算速度。而现有的结构化稀疏,例如通道系数和过滤器稀疏,都是粗粒度的结构化稀疏,这些粗粒度的结构化稀疏化方法虽然不会影响计算速度但在对卷积神经网络的稀疏过程中会“不小心”的将许多重要的参数误裁。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于解决现有卷积神经网络优化方法中,非结构化稀疏会破坏卷积核的结构,严重影响计算速度,以及粗粒度的结构化稀疏的粗粒度结构化会在稀疏过程中将许多重要的参数误裁的技术问题。为实现上述目的,本专利技术提供一种基于winograd算法的卷积神经网络优化方法,包括以下步骤:(1)确定待优化的卷积神经网络,所述待优化的卷积神经网络包括至少一个卷积层,每个卷积层包括多个过滤器,每个过滤器有多个通道,每个通道对应一个卷积核,每个卷积核对应一个输入特征图;(2)在每个卷积层中,根据每个卷积核的绝对值之和进行排序,按比例选取绝对值之和小的卷积核进行裁剪,并更新每个卷积层的面具矩阵,所述面具矩阵的行和列分别对应过滤器和通道,面具矩阵中的元素数值用于指示对应过滤器和通道的卷积核是否被裁剪,所述卷积核的绝对值之和通过将卷积核的矩阵元素的绝对值相加得到;(3)基于所述面具矩阵使用winograd算法确定每个过滤器对应的输出特征图。可选地,待优化的卷积神经网络的卷积核是四维张量,N×C×K×K,其中N是过滤器的个数,一个C×K×K的三维张量记为一个过滤器,C是通道数,每个通道对应一个输入特征图,K×K是一个二维矩阵,记为卷积核;一个过滤器由C个卷积核对应的二维矩阵K×K组成,K表示卷积核的长和宽。可选地,所述步骤(2)包括如下子步骤:(21)在每个卷积层中,计算每个卷积核的绝对值之和;(22)按绝对值之和对每个卷积层中所有的卷积核升序排列后放入一个集合中;(23)在集合中选择绝对值之和最小的卷积核作为待裁剪卷积核;(24)判断待裁剪的卷积核所处的过滤器或通道是否达到裁剪上限,如果达到裁剪上限,进入步骤(25),否则进入步骤(26);(25)将该待裁剪卷积核移出集合,进入步骤(23);(26)将该卷积核裁剪掉,并判断卷积核的裁减数是否达到预定值,如果未达到,进入步骤(23),如果达到,停止裁剪。可选地,所述步骤(24)包含如下子步骤:(241)裁剪卷积核时,每个过滤器裁剪的比例相同,当一个过滤器中裁剪的卷积核数目已达上限,则不能裁剪该过滤器中任何卷积核;(242)裁剪卷积核时,每个通道裁剪的比例相同,当一个通道中裁剪的卷积核数目已达上限,则不能裁剪该通道中任何卷积核。可选地,所述步骤(26)包含如下子步骤:(261)在每个卷积层中,定义一个面具矩阵N×C,其中N表示一个过滤器,C表示一个通道,矩阵中每个点表示一个过滤器中一个通道上的卷积核,矩阵中每个点都是二值,0和1,其中0表示对应位置的卷积核已经被裁剪,1表示对应位置的卷积核没有被裁剪;(262)卷积核被裁掉后,面具矩阵中对应位置的数值置0。可选地,所述步骤(3)包含如下子步骤:(31)将没有裁剪的卷积核与第一预设矩阵W及其转置矩阵进行矩阵乘法得到第一中间结果U,计算公式为:WwWT,其中w为没有裁剪的卷积核;(32)将输入特征图切片后的矩阵与第二预设矩阵X及其转置矩阵进行矩阵相乘得到第二中间结果V,计算公式为:XxXT其中x为输入特征图切片后的矩阵;(33)第一中间结果和第二中间结果进行点乘,得到第三中间结果Z;(34)将第三中间结果Z与第三预设矩阵M及其转置矩阵进行矩阵相乘,得到一个转化后的N×L矩阵,该矩阵中每一行的元素组合起来就是一个输出特征图,最终得到N个过滤器对应的N个输出特征图。可选地,所述步骤(31)包含如下子步骤:(311)K值不同的卷积核选取不同大小的第一预设矩阵;(312)将面具矩阵中数值为1的位置所代表的卷积核与第一预设矩阵W及其转置矩阵进行矩阵乘法后,得到第一中间结果U。可选地,所述步骤(32)包含如下子步骤:(321)输入特征图是三维张量,C×Col×Row,其中C表示通道数,即输入特征图的个数,Col×Row表示一个二维输入特征图的列和行;(322)从每个输入特征图的左上角开始截取一个t×t的输入特征图切片,其中t×t为第二预设矩阵X的大小;(323)以步长S向右移动到最右端;(324)以步长S向下移动,如果到达输入特征图最下端,输入特征图切分结束,否则,重复步骤(323);(325)每个输入特征图切片后,将每个t×t的输入特征图切片与第二预设矩阵X及其转置矩阵相乘,得到第二中间结果V。可选地,所述步骤(33)包含如下子步骤:(331)在一个卷积层中,U可表示为N×C×t×t,二维的卷积核与第一预设矩阵W及其转置矩阵相乘后的转化值的长×宽是t×t,V可表示为C×L×t×t,L表示每个二维的输入特征图的切片数目,输入特征图切片与第二预设矩阵X及其转置矩阵相乘后的转化值的长×宽是t×t;(332)在winograd算法计算过程中,U中的N×C与V中的C×L进行矩阵相乘,将长×宽是t×t的转化值看作矩阵相乘中的一个数值,最终得到一个矩阵中每个点都是一个t×t二维矩阵的N×L矩阵,记作Z;(333)计算时,二维的卷积核与第一预设矩阵W及其转置矩阵相乘后的转化值与输入特征图切片与第二预设矩阵X及其转置矩阵相乘后的转化值两个t×t二维矩阵之间进行点乘计算而非矩阵乘法。可选地,步骤(34)包含如下子步骤:(341)步骤(332)中得到的第三中间结果Z,是一个N×L的矩阵,该矩阵中每个值都是一个t×t的二维矩阵;(342)对其中每个t×t二维矩阵,将其与第三预设矩阵M及其转置矩阵进行矩阵乘法,最终得到一个转化后的N×L矩阵,该矩阵中每一行的元素组合起来就是一个输出特征图;(343)分别将步骤(342)得带的N×L矩阵的各行元素组合起来,得到N个过滤器对应的N个输出特征图。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:本专利技术提供的卷积神经网络优化方法,使用细粒度的卷积神本文档来自技高网...

【技术保护点】
1.一种基于winograd算法的卷积神经网络优化方法,其特征在于,包括以下步骤:(1)确定待优化的卷积神经网络,所述待优化的卷积神经网络包括至少一个卷积层,每个卷积层包括多个过滤器,每个过滤器有多个通道,每个通道对应一个卷积核,每个卷积核对应一个输入特征图;(2)在每个卷积层中,根据每个卷积核的绝对值之和进行排序,按比例选取绝对值之和小的卷积核进行裁剪,并更新每个卷积层的面具矩阵,所述面具矩阵的行和列分别对应过滤器和通道,面具矩阵中的元素数值用于指示对应过滤器和通道的卷积核是否被裁剪,所述卷积核的绝对值之和通过将卷积核的矩阵元素的绝对值相加得到;(3)基于所述面具矩阵使用winograd算法确定每个过滤器对应的输出特征图。

【技术特征摘要】
1.一种基于winograd算法的卷积神经网络优化方法,其特征在于,包括以下步骤:(1)确定待优化的卷积神经网络,所述待优化的卷积神经网络包括至少一个卷积层,每个卷积层包括多个过滤器,每个过滤器有多个通道,每个通道对应一个卷积核,每个卷积核对应一个输入特征图;(2)在每个卷积层中,根据每个卷积核的绝对值之和进行排序,按比例选取绝对值之和小的卷积核进行裁剪,并更新每个卷积层的面具矩阵,所述面具矩阵的行和列分别对应过滤器和通道,面具矩阵中的元素数值用于指示对应过滤器和通道的卷积核是否被裁剪,所述卷积核的绝对值之和通过将卷积核的矩阵元素的绝对值相加得到;(3)基于所述面具矩阵使用winograd算法确定每个过滤器对应的输出特征图。2.根据权利要求1所述的基于winograd算法的卷积神经网络优化方法,其特征在于,待优化的卷积神经网络的卷积核是四维张量,N×C×K×K,其中N是过滤器的个数,一个C×K×K的三维张量记为一个过滤器,C是通道数,每个通道对应一个输入特征图,K×K是一个二维矩阵,记为卷积核;一个过滤器由C个卷积核对应的二维矩阵K×K组成,K表示卷积核的长和宽。3.根据权利要求2所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(2)包括如下子步骤:(21)在每个卷积层中,计算每个卷积核的绝对值之和;(22)按绝对值之和对每个卷积层中所有的卷积核升序排列后放入一个集合中;(23)在集合中选择绝对值之和最小的卷积核作为待裁剪卷积核;(24)判断待裁剪的卷积核所处的过滤器或通道是否达到裁剪上限,如果达到裁剪上限,进入步骤(25),否则进入步骤(26);(25)将该待裁剪卷积核移出集合,进入步骤(23);(26)将该卷积核裁剪掉,并判断卷积核的裁减数是否达到预定值,如果未达到,进入步骤(23),如果达到,停止裁剪。4.根据权利要求3所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(24)包含如下子步骤:(241)裁剪卷积核时,每个过滤器裁剪的比例相同,当一个过滤器中裁剪的卷积核数目已达上限,则不能裁剪该过滤器中任何卷积核;(242)裁剪卷积核时,每个通道裁剪的比例相同,当一个通道中裁剪的卷积核数目已达上限,则不能裁剪该通道中任何卷积核。5.根据权利要求3所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(26)包含如下子步骤:(261)在每个卷积层中,定义一个面具矩阵N×C,其中N表示一个过滤器,C表示一个通道,矩阵中每个点表示一个过滤器中一个通道上的卷积核,矩阵中每个点都是二值,0和1,其中0表示对应位置的卷积核已经被裁剪,1表示对应位置的卷积核没有被裁剪;(262)卷积核被裁掉后,面具矩阵中对应位置的数值置0。6.根据权利要求5所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(3)包含如下子步骤:(31)将没有裁剪的卷积核与第一预设矩阵W及其转置矩阵进行矩阵乘法得到第一中间结果U,计算公式为:WwWT,其...

【专利技术属性】
技术研发人员:万继光王中华瞿晓阳郑文凯李大平胡泽鑫伍信一鲁凯张超徐鹏闫锐谭志虎谢长生
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1