一种基于泰勒展开及数据驱动的神经网络压缩方法技术

技术编号:28376563 阅读:32 留言:0更新日期:2021-05-08 00:04
本发明专利技术公开了一种基于泰勒展开及数据驱动的神经网络压缩方法,使用所述训练用数据集训练原始神经网络模型直至收敛,获得训练神经网络模型;评估所述评估用数据集和所述训练神经网络模型,得到每一个卷积核的重要性评估值;然后去掉不重要的卷积核通道进行神经网络模型压缩,可以达到在尽量保证神经网络模型性能的前提下,将神经网络模型的参数量和模型大小压缩的效果,从而实现对现有技术中的神经网络模型进行优化,提高压缩后网络的精度,减少计算内存空间。

【技术实现步骤摘要】
一种基于泰勒展开及数据驱动的神经网络压缩方法
本专利技术涉及神经网络优化
,尤其涉及一种基于泰勒展开及数据驱动的神经网络压缩方法。
技术介绍
卷积神经网络广泛地应用于计算机视觉的各个领域,包括物体分类和定位、行人车辆检测和视频分类等。扩大数据集的规模以及神经网络模型的参数量是深度学习成功的原因,在近些年的发展中,神经网路模型的层数从AlexNet的8层,到ResNet-152的一百多层,通过急剧的增加层数,深度神经网络在ImageNet分类任务上实现了比人更好的性能。但是神经网络模型越来越大的同时,计算资源有限的设备,如智能手机和嵌入式设备,逐渐无法搭载和运行那些性能出众但是需要消耗大量资源(计算力和显卡内存)的神经网络模型,即便使用云计算的服务,预测延迟和能源消耗也会是重要的考虑因素。因此通过去掉冗余的、不重要的参数,对大型的神经网络模型做“瘦身”,让硬件资源有限的机器可以运行压缩后的神经网络模型,还有运行时间、功耗等,所有这些情况都将从神经网络模型压缩中受益匪浅。
技术实现思路
本专利技术的目的在于提供一种基于泰勒展开及数据驱动的神经网络压缩方法,旨在对现有技术中的神经网络模型进行优化,提高压缩后网络的精度,减少计算内存空间。为实现上述目的,本专利技术采用的一种基于泰勒展开及数据驱动的神经网络压缩方法,包括下列步骤:选取原始的神经网络模型和数据集;将所述数据集分成训练用数据集和评估用数据集;使用所述训练用数据集训练原始神经网络模型直至收敛,获得训练神经网络模型;评估所述评估用数据集和所述训练神经网络模型,得到每一个卷积核的重要性评估值;对所有卷积核的所述重要性评估值进行排序,按照裁剪比例确定阈值;判断卷积核是否保持,获取压缩神经网络模型;重新训练所述压缩神经网络模型。其中,在将所述数据集分成训练用数据集和评估用数据集过程中,所述数据集分类方法为随机打乱选取,抽取比例是90%作为训练用数据集,10%作为评估用数据集。其中,所述重要性评估值的大小取决于卷积核从有到无带来的损失函数的函数差值的绝对值。其中,所述损失函数采用泰勒公式展开拟合。其中,判断卷积核是否保持的步骤,包括:比较卷积核的所述重要性评估值和所述阈值,若所述重要性评估值大于所述阈值,保留卷积核;若所述重要性评估值小于所述阈值,去除卷积核。其中,所述训练神经网络模型和所述压缩神经模型的裁剪压缩使用通用剪枝算法。本专利技术的一种基于泰勒展开及数据驱动的神经网络压缩方法,通过评估每个特征图的重要性后去掉不重要的卷积核通道进行神经网络模型压缩,可以达到在尽量保证神经网络模型性能的前提下,将神经网络模型的参数量和模型大小压缩的效果,从而实现对现有技术中的神经网络模型进行优化,提高压缩后网络的精度,减少计算内存空间。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术的一种基于泰勒展开及数据驱动的神经网络压缩方法的流程示意图。图2是本专利技术的实施例中卷积核的重要性衡量比较图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。在本专利技术的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,在本专利技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。请参阅图1,本专利技术提供了一种基于泰勒展开及数据驱动的神经网络压缩方法,包括下列步骤:S1:选取原始的神经网络模型和数据集;S2:将所述数据集分成训练用数据集和评估用数据集;S3:使用所述训练用数据集训练原始神经网络模型直至收敛,获得训练神经网络模型;S4:评估所述评估用数据集和所述训练神经网络模型,得到每一个卷积核的重要性评估值;S5:对所有卷积核的所述重要性评估值进行排序,按照裁剪比例确定阈值;S6:判断卷积核是否保持,获取压缩神经网络模型;S7:重新训练所述压缩神经网络模型。进一步地,在将所述数据集分成训练用数据集和评估用数据集过程中,所述数据集分类方法为随机打乱选取,抽取比例是90%作为训练用数据集,10%作为评估用数据集。可选的,所述重要性评估值的大小取决于卷积核从有到无带来的损失函数的函数差值的绝对值。可选的,所述损失函数采用泰勒公式展开拟合。进一步地:判断卷积核是否保持的步骤,包括:比较卷积核的所述重要性评估值和所述阈值,若所述重要性评估值大于所述阈值,保留卷积核;若所述重要性评估值小于所述阈值,去除卷积核。可选的,所述训练神经网络模型和所述压缩神经模型的裁剪压缩使用通用剪枝算法。可选的,假设xin代表输入到神经网络模型的一条数据,Zk代表第k个通道的输出,L(Z)代表网络的损失函数,共有n个通道,H代表损失函数对第k个通道的二阶偏导,对应第k个通道,使用泰勒展开得到以下式子:使用第k个通道有无对损失函数差值的绝对值作为衡量该通道的重要性将H展开进一步得到第k个通道的重要性为:本专利技术提供了使用VGG19模型裁剪压缩作为实施例:1)选取原始的神经网络模型和数据集VGG19的神经网络模型为:[64,64,'M',128,128,'M',256,256,256,256,'M',512,512,512,512,'M',512,512,512,512]共19层,每层的卷积核数目为64、128、256或者512,M代表池化层数据集采用Cifar10数据集,该数据集共有60000张彩色图像,这些图像是32*32,分为10个类,每类6000张图。2)将数据集打乱后分成两部分,一部分用于训练,一部分用于评估卷积核的重要性此处选用了90%数据集用于训练,10%的数据集用于剪枝。3)使用前一部分数据集训练原始神经网络模型直至收敛。4)对另一部分数据集和训练后的神经网络模型,使用上述评估卷积核重要性的方法,得到每一个卷积核的重要性评估值。每一个数据前向传递后会得到每一个卷积核的重要性衡量,最后本文档来自技高网...

【技术保护点】
1.一种基于泰勒展开及数据驱动的神经网络压缩方法,其特征在于,/n包括下列步骤:/n选取原始的神经网络模型和数据集;/n将所述数据集分成训练用数据集和评估用数据集;/n使用所述训练用数据集训练原始神经网络模型直至收敛,获得训练神经网络模型;/n评估所述评估用数据集和所述训练神经网络模型,得到每一个卷积核的重要性评估值;/n对所有卷积核的所述重要性评估值进行排序,按照裁剪比例确定阈值;/n判断卷积核是否保持,获取压缩神经网络模型;/n重新训练所述压缩神经网络模型。/n

【技术特征摘要】
1.一种基于泰勒展开及数据驱动的神经网络压缩方法,其特征在于,
包括下列步骤:
选取原始的神经网络模型和数据集;
将所述数据集分成训练用数据集和评估用数据集;
使用所述训练用数据集训练原始神经网络模型直至收敛,获得训练神经网络模型;
评估所述评估用数据集和所述训练神经网络模型,得到每一个卷积核的重要性评估值;
对所有卷积核的所述重要性评估值进行排序,按照裁剪比例确定阈值;
判断卷积核是否保持,获取压缩神经网络模型;
重新训练所述压缩神经网络模型。


2.如权利要求1所述的基于泰勒展开及数据驱动的神经网络压缩方法,其特征在于,在将所述数据集分成训练用数据集和评估用数据集过程中,所述数据集分类方法为随机打乱选取,抽取比例是90%作为训练用数据集,10%作为评估用数据集。

【专利技术属性】
技术研发人员:申卓朱清新
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

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

1