一种基于网络结构搜索的模型剪枝方法技术

技术编号:38986812 阅读:8 留言:0更新日期:2023-10-07 10:17
本发明专利技术公开了一种基于网络结构搜索的模型剪枝方法。该方法包括:获取需要的剪枝模型和剪枝目标;其中,所述待剪枝模型基于网络结构搜索获得,所述待剪枝目标包含各种参数信息;控制器发送控制信息参数进行第一次剪枝;获取了第一次的剪枝后的模型的各种参数;控制器以此类推进行循环发送剪枝请求;可以控制剪枝请求循环次数;将最后一次循环的剪枝模型作为目标模型。为目标模型。为目标模型。

【技术实现步骤摘要】
一种基于网络结构搜索的模型剪枝方法


[0001]本专利技术涉及模型压缩
,尤其涉及一种基于网络结构搜索的模型剪枝方法。

技术介绍

[0002]深度学习模型压缩方法中的剪枝,内容从剪枝简介、剪枝步骤、结构化剪枝与非结构化剪枝、静态剪枝与动态剪枝、硬剪枝与软剪枝等五个部分展开。
[0003]剪枝简介
[0004]在介绍剪枝之前,首先来过参数化这个概念,过参数化主要是指在训练阶段,在数学上需要进行大量的微分求解,去捕捉数据中微小的变化信息,一旦完成迭代式的训练之后,网络模型在推理的时候就不需要这么多参数。而剪枝算法正是基于过参数化的理论基础提出来的。剪枝算法的核心思想就是减少网络模型中参数量和计算量,同时尽量保证模型的性能不受影响。
[0005]剪枝步骤
[0006]先训练一个模型,然后对模型进行剪枝,最后对剪枝后模型进行微调。这种方法是三种方法中用的最多的。
[0007]直接在模型训练过程中进行剪枝,最后对剪枝后模型进行微调。
[0008]直接进行剪枝,然后从头训练剪枝后的模型。
[0009]第一步训练:是对网络模型进行训练。在剪枝流程中,训练部分主要指预训练,训练的目的是为剪枝算法做准备;
[0010]第二步剪枝:在这里面可以进行如细粒度剪枝、向量剪枝、核剪枝、滤波器剪枝等各种不同的剪枝算法。其中很重要的一点,就是在剪枝之后,对网络模型进行评估,看是否符合要求。剪枝之前需要确定需要剪枝的层,设定一个裁剪阈值或者比例。在具体实现上,通过修改代码加入一个与参数矩阵尺寸一致的Mask矩阵。Mask矩阵中只有0和1,它的实际作用是微调网络;
[0011]第三步微调:微调是一个的必要的步骤,它能恢复被剪枝操作影响的模型性能。结构化剪枝会对原始模型的结构进行调整,因此剪枝后的模型虽然保留了原始模型的参数,但是由于模型结构的改变,模型的表达能力会受到一定程度的影响。具体实现上,在计算的时候先乘以该Mask矩阵,Mask为1的参数值将继续训练,并通过反向传播调整梯度,而Mask为0的部分因为输出始终为0则不对后续部分产生影响。
[0012]结构化剪枝与非结构化剪枝
[0013]从左到右,剪枝的粒度是递增的,最左边的非结构化剪枝粒度最小,右边结构化剪枝中的层级、通道级、滤波器级剪枝粒度依次增大。
[0014]非结构化剪枝
[0015]非结构化剪枝主要是对一些独立的权重或者神经元进行剪枝,就是随机的剪,是粒度最小的剪枝。问题是如何确定要剪哪些东西呢?
[0016]最简单的方法是预定义一个阈值,低于这个阈值的权重被剪去,高于的被保留。但是有三个主要缺点:
[0017]1、阈值与稀疏性没有直接联系;
[0018]2、不同的层应该具有不同的灵敏度;
[0019]3、这样设置阈值可能会剪掉太多信息,无法恢复原来的精度。
[0020]非结构化剪枝的优点是:剪枝算法简单,模型压缩比高;缺点是:精度不可控,剪枝后权重矩阵稀疏,没有专用硬件难以实现压缩和加速的效果。
[0021]结构化剪枝
[0022]图中右边这三个是结构化剪枝,结构化的剪枝是有规律、有顺序的。对神经网络,或者计算图进行剪枝,几个比较经典的就是对layer进行剪枝,对channel进行剪枝,对Filter进行剪枝,剪枝粒度依次增大。
[0023]在滤波器剪枝中,有一种方法是使用滤波器的Lp范数来评估每个滤波器的重要性(p为1则使用L1范数,p为2则使用L2范数)。通常,L范数较小的滤波器的卷积结果导致相对较低的激活值,因此对模型的最终预测具有较小的数值影响。根据这种理解,这种小Lp范数的滤波器将比那些大Lp范数滤波器更容易被剪掉。
[0024][0025]结构化剪枝的优点是:大部分算法保留原始卷积结构,不需要专用硬件就可以实现;缺点是:剪枝算法相对复杂。
[0026]静态剪枝与动态剪枝
[0027]静态剪枝
[0028]静态剪枝在训练后和推理前进行剪枝。在推理过程中,不需要对网络进行额外的剪枝。静态剪枝通常包括三个部分:剪枝参数的选择;剪枝的方法;选择性微调或再训练;
[0029]再训练可以提高修剪后的网络的性能,以达到与未修剪时的网络相当的精度,但可能需要大量的计算时间和能耗。
[0030]静态剪枝存储成本低,适用于资源有限的边缘设备,但是也存在三个主要问题:
[0031]通道的删除是永久性的,对于一些较为复杂的输入数据,可能无法达到很好的精度,这是因为有些通道已经被永久剪掉了。
[0032]需要精心设计要剪的部分,不然容易造成计算资源的浪费。
[0033]神经元的重要性并不是静态的,而且神经元的重要性很大程度上依赖于输入数据,静态的剪枝很容易降低模型的推理性能。
[0034]动态剪枝
[0035]网络中有一些奇怪的权重,他们在某些迭代中作用不大,但在其他的迭代中却很重要。动态剪枝就是通过动态的恢复权重来得到更好的网络性能。动态剪枝在运行时才决定哪些层、通道或滤波器不会参与进一步的活动。动态剪枝可以通过改变输入数据来克服静态剪枝的限制,从而潜在地减少计算量、带宽和功耗。而且动态剪枝通常不会执行微调或重新训练。
[0036]与静态剪枝相比,动态剪枝能够显着提高卷积神经网络的表示能力,从而在预测
精度方面取得更好的性能。同样,动态剪枝也存在一些问题:
[0037]之前有方法通过强化学习来实现动态剪枝,但在训练过程中要消耗非常多的运算资源。
[0038]很多动态剪枝的方法都是通过强化学习的方式来实现的,但是“阀门的开关”,是不可微的,也就是说,梯度下降法在这里是用不了的。
[0039]存储成本高,不适用于资源有限的边缘设备。
[0040]硬剪枝与软剪枝
[0041]硬剪枝与软剪枝都是对Filter进行剪枝,是结构化剪枝中粒度最大的剪枝。
[0042]硬剪枝
[0043]硬剪枝在每一轮后,会将卷积核直接剪掉,被剪掉的卷积核在下一轮中不会再出现。这类的剪枝算法通常从模型本身的参数出发,寻找或者设计出合适的统计量来表明连接的重要性。通过对重要性的排序等算法,永久删除部分不重要的连接,保留下来的模型即为剪枝模型。但是也存在一些问题:
[0044]模型性能可能会降低;
[0045]依赖预先训练的模型。
[0046]软剪枝
[0047]相比较于硬剪枝,软剪枝在进行训练时,上一轮中被剪掉的卷积核在本轮训练时仍参与迭代,只是将其参数置为0,因此那些卷积核不会被直接丢弃。
[0048]在每轮训练中,根据不同的数据对完整模型进行优化和训练。在每轮之后,为每个加权层计算所有滤波器的L2范数,并将其作为滤波器选择的标准。然后,通过将相应的滤波器权重设置为零来修剪所选择的滤波器,随后是下一轮训练。最后,原始的深度神经网络模型被修剪成一个紧凑而有效的模型。
[0049]软剪枝本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模型剪枝方法,其特征在于,包括:获取需要的剪枝模型和剪枝目标;其中,所述待剪枝模型基于网络结构搜索获得,所述待剪枝目标包含各种参数信息;控制器发送控制信息参数进行第一次剪枝;获取了第一次的剪枝后的模型的各种参数;控制器以此类推进行循环发送剪枝请求;可以控制剪枝请求循环次数;将最后一次循环的剪枝模型作为目标模型。2.根据权利要求1所述的模型剪枝方法,其特征在于,所述采集图像数据的步骤,包括:收集硬件设备查找预设输电线收集的图像参数;从所获取的图像参数信息中获取剪枝目标图像;从所获取的目标图像的问题检测数据库的数据集;从所述目标图像问题检测数据库的数据集对所述待剪枝目标图像进行标记,得到目标图像参数。3.根据权利要求1所述的模型剪枝方法,其特征在于,所述剪枝目标还包括目标剪枝通道数;相应地,所述根据所述剪枝目标对所述第一微调后模型进行迭代剪枝,获得第二剪枝后模型,包括:S1,对所述第一微调后模型中的一个通道进行剪枝,获得单通道剪枝后模型;S2,按照第二微调次数对单通道剪枝后模型进行微调训练,获得第二微调后模型;其中,所述第二微调次数根据剪枝配比信息中迭代剪枝在模型剪枝过程的占比信息、目标剪枝通道数以及剪枝训练迭代总数确定;S3,在所述第二微调后模型的基础上重复执行S1

S2,直到达到预设的迭代次数,以获得最新的第二微调后模型,并将最新的第二微调后模型作为第二剪枝后模型;其中,所述预设的迭代次数根据迭代剪枝通道数确定,该迭代剪枝通道数根据所述目标剪枝通道数以及所述剪枝配比信息中迭代剪枝在模型剪枝过程中的占比信息计算得到。4.根据权利要求1所述的模型剪枝方法,其特征在于,清洗所述图像数据中的异常数据,得到清洗数据;所述清洗数据包括正常设备数据和缺陷设备数据;调整所述正常设备数据和所述缺陷设备数据的比例,得到样本数据;按照预设比例从所述样本数据中提取训练数据,生成训练集。5.根据权利要求1所述的模型剪枝方法,其特征在于,所述剪枝目标还包括目标剪枝通道数;相应地,所述根据所述剪枝目标对所述待剪枝模型进行一次剪枝,获得第一剪枝后模型,包...

【专利技术属性】
技术研发人员:丁晓嵘张新李晓梅聂明杰李楠王柏春张兴业田晓宇高涵项乾
申请(专利权)人:北京市智慧水务发展研究院
类型:发明
国别省市:

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

1