本发明涉及数据处理,具体涉及一种深度学习模型压缩方法。
背景技术:
1、模型训练,训练的模型太小,训练后效果不能满足需求,正确率低。选择大模型,由于产品性能,速度,计算性能没法达到,不能使用。通常可以采取通用的剪枝,蒸馏,nas等方法。剪枝需要训练一个大的模型后,通过剪枝后需要再次训练,且剪枝后训练正确率较剪枝前的模型正确率会降低。蒸馏采用大模型引导小模型的方法。但是小模型设定后,有些地方参数表达能力不强,会导致整个效果上不去,只能同个模型,相对蒸馏后会有一些提高,但是训练时,大模型,小模型需要一起训练,训练时间也是会加长。nas相对于现在的gpu的算力,训练速度慢,训练时间太长,训练后模型的查找时长也是很长。上述模型训练方法均存在有各自的缺陷,因此需要开发一种训练前选择大模型策略,通过扩大模型的的宽度,提高模型的表达能力,而训练完后,可以去掉没用的参数,直接减小模型大小和计算量,模型的正确率没有改变且不需要再次训练的方法。
技术实现思路
1、针对现有技术的不足,本发明提出了一种深度学习模型压缩方法,可以针对不同的模型结构,在保证模型正确率的前提下,自动去掉无用的参数,达到减小模型的目的,以更小的模型达到大模型的效果。
2、为实现上述技术方案,本发明提供了一种深度学习模型压缩方法,具体包括如下步骤:
3、s1、获取网络中所有的batchnorm层,如果遇到卷积层、反卷积层、全连接层则结束,遇到激活层、pool层则上采样,遇到concat层、clip层、add层则向下查找;
4、s2、合并影响的层,生成一层关系层的组合,保留关键特征,去除不重要特征;
5、s3、设置阈值a,通过组合中的batchnorm层,计算其绝对值除以其最大值,设置其大于阈值a的通道保留,其余通道全部去除掉;
6、s4、处理组合中batchnorm层的输入卷积层及输出卷积层,对于输入卷积层,直接去掉卷积核第一维度对应的通道,对于输出卷积层,直接去掉卷积核第二维度对应的通道。
7、优选的,所述步骤s1中,获取网络中所有的batchnorm层包括所有的batchnorm输入层,以及batchnorm输入层对应的输出层。
8、优选的,所述步骤s3中,阈值a≦0.001。
9、优选的,所述步骤s3中,如果有多个batchnorm层,取对应的任何一个满足条件的通道。
10、优选的,所述步骤s3中,可以通过对batchnorm层的gmma参数权重的正则化,突显通道卷积核的重要性。
11、优选的,所述步骤s4中,dw层归于输出层,在处理输出的卷积的时候,对应的bias同时去除掉对应的通道。
12、优选的,所述步骤s1中,获取网络中所有的batchnorm层的过程中采用大宽带的网络。
13、本发明提供的一种深度学习模型压缩方法的有益效果在于:本深度学习模型压缩方法可以精确且快速的确定参数的在模型中是否有用或者无用,并在不同的结构中去除掉无用的参数,从而可以去掉模型中大部分的无用参数,大大减少了模型的大小,在保证模型正确率的前提下,减少了内存的应用,计算量也大大减少,大大提高模型响应的速度,以更小的模型达到大模型的效果。
1.一种深度学习模型压缩方法,其特征在于具体包括如下步骤:
2.如权利要求1所述的深度学习模型压缩方法,其特征在于,所述步骤s1中,获取网络中所有的batchnorm层包括所有的batchnorm输入层,以及batchnorm输入层对应的输出层。
3.如权利要求1所述的深度学习模型压缩方法,其特征在于,所述步骤s3中,阈值a≦0.001。
4.如权利要求1所述的深度学习模型压缩方法,其特征在于,所述步骤s3中,如果有多个batchnorm层,取对应的任何一个满足条件的通道。
5.如权利要求1所述的深度学习模型压缩方法,其特征在于,所述步骤s3中,可以通过对batchnorm层的gmma参数权重的正则化,突显通道卷积核的重要性。
6.如权利要求1所述的深度学习模型压缩方法,其特征在于,所述步骤s4中,dw层归于输出层,在处理输出的卷积的时候,对应的bias同时去除掉对应的通道。
7.如权利要求1所述的深度学习模型压缩方法,其特征在于,所述步骤s1中,获取网络中所有的batchnorm层的过程中采用大宽带的网络。
