【技术实现步骤摘要】
一种基于winograd算法的卷积神经网络优化方法
本专利技术涉及人工智能
,更具体地,涉及一种基于winograd算法的卷积神经网络优化方法。
技术介绍
AlphaGo成功打败人类后,深度学习模型就越来越吸引人们的目光,特别是卷积神经网络模型已经在商业领域和研究领域都表现出了令人惊讶地成就。因为深度学习模型举世瞩目的成就,将其部署在以手机为例的移动设备端的需求也就应运而生,然而这些移动设备的CPU、内存等资源都远不足以运行庞大的深度学习模型。为了解决这类问题,对深度学习模型的优化加速方法就很快热门起来。这两年出现了很多对深度模型的推断优化加速方法,首当其冲的就是对卷积神经网络的加速优化,这主要是因为卷积神经网络通常用来处理图像数据,众所周知,图像的数据量是除了视频数据外最大的,因此对卷积神经网络的计算需求和内存需求的优化势在必行。因为卷积神经网络中有大量冗余参数,所以现有的卷积神经网络优化方式主要有两类:非结构化稀疏和非结构化稀疏。非结构化稀疏虽然可以实现更大程度的稀疏化,但却会使得训练好的卷积神经网络模型中的卷积核的结构会遭到破坏变成非结构化,非结构化的卷积核在与结构化的输入图片数据计算时会出现稀疏矩阵与密集矩阵相乘,严重影响计算速度。而现有的结构化稀疏,例如通道系数和过滤器稀疏,都是粗粒度的结构化稀疏,这些粗粒度的结构化稀疏化方法虽然不会影响计算速度但在对卷积神经网络的稀疏过程中会“不小心”的将许多重要的参数误裁。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于解决现有卷积神经网络优化方法中,非结构化稀疏会破坏卷积核的结构,严重影响计算速度 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。