深度神经网络压缩方法、系统、储存介质及计算机设备与流程

文档序号:23984038发布日期:2021-02-20 11:27阅读:40来源:国知局
深度神经网络压缩方法、系统、储存介质及计算机设备与流程

[0001]
本发明涉及电力智能巡检技术领域,具体涉及变电设备缺陷人工智能图像识别技术领域,更具体地,涉及一种深度神经网络压缩方法、系统、储存介质及计算机设备。


背景技术:

[0002]
目前,在电力智能巡检中运用深度学习神经网络对电力设备的故障缺陷进行智能识别已经成为一种趋势。但是,深度神经网络包含庞大的参数,而且计算流程复杂。卷积神经网络计算量集中在卷积层,参数集中在全连接层。对于电力智能巡检而言,在应用这些网络时,计算和存储都需要消耗大量的资源,而且对进行计算的设备有很高的要求,因此有必要对训练好的深度学习神经网络进行压缩简化。
[0003]
现有技术主要通过模型剪枝及参数量化等方法来实现神经网络的简化,传统模型剪枝主要通过阈值比较的方式,如公开时间为2020.07.07,公开号为cn111382839a的中国专利:剪枝神经网络的方法和装置所示,通过设定一个大于零的阈值,将模型参数的绝对值与阈值比较,绝对值小于阈值的参数置零,绝对值大于该阈值的参数保持不变,然后再对模型进行重新训练,恢复模型精度。而参数量化即试图降低神经网络中参数的精度或使用更低位宽的数据类型来代替。这些传统的压缩方法可以减少模型的参数,降低模型的计算量,但同时会给模型带来较大的精度损失。


技术实现要素:

[0004]
针对现有技术的局限,本发明提出一种深度神经网络压缩方法、系统、储存介质及计算机设备,本发明采用的技术方案是:
[0005]
一种深度神经网络压缩方法,所述深度神经网络压缩方法对压缩对象的卷积层以及全连接层分别进行压缩;
[0006]
其中,对所述卷积层进行压缩的过程包括以下步骤:
[0007]
根据所述卷积层中特征图对应的通道的重要性,进行通道裁剪;
[0008]
对所述全连接层进行压缩的过程包括以下步骤:
[0009]
对所述全连接层的参数进行迭代剪枝;
[0010]
对迭代剪枝后的全连接层的参数进行线性量化。
[0011]
相较于现有技术,本发明通过对卷积层进行通道裁剪,对全连接层参数进行迭代剪枝及线性量化,可以实现很好的压缩效果,而且模型的精度损失较小。在相同的压缩水平下,迭代剪枝能有效降低剪枝带来的模型精度损失,而经过迭代剪枝基础上进一步进行线性量化,还在有效控制模型精度损失的同时降低参数容量。
[0012]
作为一种优选方案,根据所述卷积层中特征图对应的通道的重要性,进行通道裁剪,包括以下步骤:
[0013]
获取所述卷积层中各特征图对应通道的滤波器参数绝对值之和;
[0014]
对所述滤波器参数绝对值之和最小的通道进行裁剪。
[0015]
作为一种优选方案,在所述迭代剪枝的各迭代次数中,包括以下步骤:
[0016]
根据当前迭代次数预设的剪枝阈值,对所述全连接层的参数进行剪枝,使所述全连接层的剪枝比到达当前迭代次数预设的阶段剪枝比;
[0017]
对当前迭代次数中的剪枝结果进行微调训练。
[0018]
进一步的,所述阶段剪枝比以预设的目标剪枝比为终点,随迭代次数的增加非线性扩大;当前阶段剪枝比所在的迭代次数越大,当前阶段剪枝比相较于上一迭代次数中的阶段剪枝比的增幅越小。
[0019]
作为一种优选的方案,所述阶段剪枝比按以下公式获得:
[0020][0021]
其中,n表示迭代次数,n表示迭代总次数;p
n
表示迭代次数n的阶段剪枝比,p
t
表示所述目标剪枝比。
[0022]
作为一种优选的方案,在对迭代剪枝后的全连接层的参数进行线性量化的步骤中,所述线性量化采用一种基于范围的线性量化方法。
[0023]
作为一种优选的方案,对迭代剪枝后的全连接层的参数进行线性量化的过程按以下公式进行:
[0024][0025]
其中,x
f
表示量化前的原始参数,即迭代剪枝后的全连接层的参数;x
q
表示量化后的整形参数;b为量化比特数;round函数为四舍五入函数,用于将浮点数转为整数。
[0026]
一种深度神经网络压缩系统,包括:
[0027]
用于对压缩对象的卷积层进行压缩的卷积层压缩模块以及用于对压缩对象的全连接层进行压缩的全连接层压缩模块;
[0028]
其中,卷积层压缩模块包括:
[0029]
通道裁剪子模块,用于根据所述卷积层中特征图对应的通道的重要性,进行通道裁剪;
[0030]
全连接层压缩模块包括:
[0031]
迭代剪枝子模块,用于对所述全连接层的参数进行迭代剪枝;
[0032]
线性量化子模块,用于对迭代剪枝后的全连接层的参数进行线性量化。
[0033]
本发明还提供以下内容:
[0034]
一种储存介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现如前述的深度神经网络压缩方法的步骤。
[0035]
一种计算机设备,包括储存介质、处理器以及储存在所述储存介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现前述的深度神经网络压缩方法的步骤。
附图说明
[0036]
图1为本发明实施例1提供的深度神经网络压缩方法的步骤流程图;
[0037]
图2为本发明实施例2提供的深度神经网络压缩方法的步骤流程图;
[0038]
图3为本发明实施例对卷积层进行通道裁剪的原理示意图;
[0039]
图4为本发明实施例在各迭代次数中对全连接层参数的剪枝步骤流程图;
[0040]
图5为本发明实施例阶段剪枝比的设置与迭代剪枝进程的示例图;
[0041]
图6为本发明实施例迭代剪枝过程中阶段剪枝比的变化趋势图;
[0042]
图7为本发明实施例提供的深度神经网络压缩系统的示意图。
具体实施方式
[0043]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0044]
应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
[0045]
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0046]
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
[0047]
此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。以下结合附图和实施例对本发明做进一步的阐述。
[0048]
为了解决现有技术的局限性,本实施例提供了一种技术方案,下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0049]
请参考图1,一种深度神经网络压缩方法,所述深度神经网络压缩方法对压缩对象的卷积层以及全连接层分别进行压缩;
[0050]
其中,对所述卷积层进行压缩的过程包括以下步骤:
[0051]
s01,根据所述卷积层中特征图对应的通道的重要性,进行通道裁剪;
[0052]
对所述全连接层进行压缩的过程包括以下步骤:
[0053]
s02,对所述全连接层的参数进行迭代剪枝;
[0054]
s03,对迭代剪枝后的全连接层的参数进行线性量化。
[0055]
相较于现有技术,本发明通过对卷积层进行通道裁剪,对全连接层参数进行迭代剪枝及线性量化,可以实现很好的压缩效果,而且模型的精度损失较小。在相同的压缩水平下,迭代剪枝能有效降低剪枝带来的模型精度损失,而经过迭代剪枝基础上进一步进行线性量化,还在有效控制模型精度损失的同时降低参数容量。
[0056]
具体的,所述压缩对象为已训练的卷积神经网络模型。
[0057]
在一种优选的实施例中,步骤s03中,所述线性量化为一种基于范围的线性量化方法,将浮点值通过与数值常量相乘来进行量化,根据张量值的实际范围来计算尺度因子,最简单的方法是使用张量的最小或最大范围,或者根据一些基于张量的范围或分布的公式推导得到一个更窄的最小或最大范围,以去除可能出现的异常值。
[0058]
本发明的神经网络压缩方法,可以广泛应用于各类神经网络算法模型,有效减少神经网络占用的计算和存储资源需求,提高网络运行效率,提高网络运算实时性,满足深度学习算法在边缘端计算的需求,特别适用于在电力智能巡检中对电力设备的故障缺陷进行智能识别。
[0059]
作为一种优选实施例,根据所述卷积层中特征图对应的通道的重要性,进行通道裁剪,请参阅图2,包括以下步骤:
[0060]
s011,获取所述卷积层中各特征图对应通道的滤波器参数绝对值之和;
[0061]
s012,对所述滤波器参数绝对值之和最小的通道进行裁剪。
[0062]
具体的,请参阅图3,卷积层的输入特征图为x
i
,输出特征图为x
i+1
。对卷积层进行通道裁剪,需要从压缩对象即已训练好的模型中取出卷积层的参数,将x
i+1
中每个特征图对应通道的卷积参数绝对值相加,并将每个通道的卷积核参数绝对值之和进行大小排序,然后将参数之和最小的通道剪掉,图中特征图的阴影部分被裁剪。
[0063]
作为一种优选方案,在所述迭代剪枝的各迭代次数中,请参阅图4,包括以下步骤:
[0064]
s021,根据当前迭代次数预设的剪枝阈值,对所述全连接层的参数进行剪枝,使所述全连接层的剪枝比到达当前迭代次数预设的阶段剪枝比;
[0065]
s022,对当前迭代次数中的剪枝结果进行微调训练。
[0066]
具体的,所述迭代剪枝,在于对模型进行多次修剪,在每个迭代次数中修剪掉参数值小于当前迭代次数中的剪枝阈值的参数;剪枝比=修剪的参数量/总参数量。在s02中,若所述阶段剪枝比尚未等于目标剪枝比,则进行下一迭代次数,若已经达到目标剪枝比,则进行线性量化的步骤。在一种可选实施例中,请参阅图5,若预设的目标剪枝比为70%,迭代次数为3,可先设定较小的剪枝阈值a,将模型剪枝到一个较小的阶段剪枝比30%,然后对剪枝模型进行微调训练;再调大剪枝阈值b进行剪枝,将模型剪枝到一个稍大的阶段剪枝比50%,再进行微调训练;最后,调大剪枝阈值n使阶段剪枝比达到目标剪枝比70%,再进行微调训练恢复精度。
[0067]
所述微调训练是为了剩余的连接能够补偿被剪掉的连接,期望剪枝比较大时,全连接层中需要被剪掉的神经会比较多,对全连接层连接造成比较大的损失。通过微调训练可以学习模型参数值及神经元之间的连通性,使模型得到一定的恢复。试验表明,采用多次迭代剪枝训练的方式,对模型精度损失更小。
[0068]
进一步的,所述阶段剪枝比以预设的目标剪枝比为终点,随迭代次数的增加非线性扩大;当前阶段剪枝比所在的迭代次数越大,当前阶段剪枝比相较于上一迭代次数中的阶段剪枝比的增幅越小。
[0069]
具体的,当剪枝比越来越大时,模型中的节点被剔除了很多,剩下的节点对于模型的精度影响会很大,模型精度很容易受节点影响。所述阶段剪枝比非线性扩大,那么在前期的剪枝过程中,阶段剪枝比的变化调整幅度会大一些,在后期的剪枝阶段,阶段剪枝比的变
化会缓和一些。在一种可选的实施例中,每个迭代次数中的阶段剪枝比的变化趋势请参阅图6,通过类似设置可以将模型因剪枝带来的精度损失进一步降低。
[0070]
作为一种优选的实施例,所述阶段剪枝比按以下公式获得:
[0071][0072]
其中,n表示迭代次数,n表示迭代总次数;p
n
表示迭代次数n的阶段剪枝比,p
t
表示所述目标剪枝比。
[0073]
作为一种优选的方案,对迭代剪枝后的全连接层的参数进行线性量化的过程按以下公式进行:
[0074][0075]
其中,x
f
表示量化前的原始参数,即迭代剪枝后的全连接层的参数;x
q
表示量化后的整形参数;b为量化比特数;round函数为四舍五入函数,用于将浮点数转为整数。
[0076]
一种深度神经网络压缩系统,请参阅图7,包括:
[0077]
用于对压缩对象的卷积层进行压缩的卷积层压缩模1以及用于对压缩对象的全连接层进行压缩的全连接层压缩模块2;
[0078]
其中,卷积层压缩模块1包括:
[0079]
通道裁剪子模块11,用于根据所述卷积层中特征图对应的通道的重要性,进行通道裁剪;
[0080]
全连接层压缩模块2包括:
[0081]
迭代剪枝子模块21,用于对所述全连接层的参数进行迭代剪枝;
[0082]
线性量化子模块22,用于对迭代剪枝后的全连接层的参数进行线性量化。
[0083]
本发明还提供以下内容:
[0084]
一种储存介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现如前述的深度神经网络压缩方法的步骤。
[0085]
一种计算机设备,包括储存介质、处理器以及储存在所述储存介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现前述的深度神经网络压缩方法的步骤。
[0086]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1