深度神经网络模型压缩方法及装置与流程

文档序号:18269975发布日期:2019-07-27 09:34阅读:181来源:国知局
深度神经网络模型压缩方法及装置与流程

本发明涉及神经网络技术领域,特别是涉及一种深度神经网络模型压缩方法及装置。



背景技术:

随着科学技术的快速发展,深度神经网络在计算机领域、视觉领域、人工智能领域等各个领域当中发展迅猛。可以利用深度神经网络对图片、音频、视频等进行识别和处理,例如应用视觉领域中的卷积神经网络进行图像分类、语义分割和目标检测等。

然而,随着深度神经网络的迅猛发展,深度神经网络模型的参数通常增加到了百万、千万或上亿的数量级,占用空间超出了当前各类移动终端的存储设备。例如,深度卷积神经网络vgg-16含有约1.4亿浮点数参数,需要超过500mb的存储空间。因此,深度神经网络模型对计算机和存储设备的要求极高,超出了当前各类移动终端设备的运算限度,限制了深度神经网络模型在移动终端设备上的应用。因此,亟需一种深度神经网络模型的压缩方法,合理地对深度神经网络模型进行压缩,使深度神经网络模型更加轻量化。



技术实现要素:

本发明所要解决的技术问题是提供一种深度神经网络模型压缩方法,通过该方法,可以对深度神经网络模型进行压缩,从而使深度神经网络模型更加轻量化,满足深度神经网络模型在移动终端设备上的应用。

本发明还提供了一种深度神经网络模型压缩装置,用以保证上述方法在实际中的实现及应用。

一种深度神经网络模型压缩方法,包括:

获取已完成训练的深度神经网络模型,并判断所述深度神经网络模型是否包含残差块;

当所述深度神经网络模型不包含残差块时,为所述深度神经网络模型中的每个卷积层配置与其对应的预先设置的特征选择模块;

依据各个所述特征选择模块,提取各个所述卷积层中各个滤波器输出的特征图,并确定每个所述特征图对应的熵权重;

依据各个所述卷积层中预先设置的熵修剪比,及各个所述卷积层中每个所述特征图对应的熵权重,确定每个所述卷积层对应的修剪阈值;

将每个卷积层中小于该卷积层的修剪阈值的各个熵权重对应的特征图进行修剪,并对各个已修剪的特征图对应的滤波器修剪;

将修剪后的深度神经网络模型进行微调训练,确定所述深度神经网络模型在修剪后的准确度,并判断所述准确度是否不小于预设的阈值;

当所述准确度不小于所述预设的阈值时,对所述深度神经网络模型进行迭代修剪,并在每次修剪后进行微调训练,保存每次微调训练后的深度神经网络模型,并确定每次微调训练后的准确度;

若当前修剪且微调训练后深度神经网络模型的准确度小于所述预设的阈值时,完成对所述深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

上述的方法,可选的,所述确定每个所述特征图对应的熵权重,包括:

获取预先设置的训练数据集中的多个样本图片,并将各个样本图片依次输入所述深度神经网络模型,计算每次输入所述样本图片时,所述深度神经网络模型的各个卷积层中每个特征图的特征图向量;

对每个所述特征图向量进行标准化处理,获得各个标准化的特征图向量,并计算各个所述标准化的特征图向量,获得与每个所述特征图对应的信息熵;

依据所述与每个所述特征图对应的信息熵,获得每次输入所述样本图片时每个所述特征图对应的熵权重,并将每个特征图每次获得的熵权重进行求和后取平均值,获得与每个所述特征图对应的平均熵权重,并将各个所述平均熵权重确定为每个所述特征图对应的熵权重。

上述的方法,可选的,所述依据各个所述卷积层中预先设置的熵修剪比,及各个所述卷积层中每个所述特征图对应的熵权重,确定每个所述卷积层对应的修剪阈值,包括:

对每个所述卷积层中与每个所述特征图对应的熵权重进行升序排序,并按照排序的顺序,依次对各个熵权重从小到大进行累加;

判断每个所述卷积层中每次累加的累加结果是否不小于该卷积层预先设置的熵修剪比;

若各个卷积层中当前累加的累加结果不小于所述熵修剪比时,将所述当前累加的最后一个熵权重确定为与每个所述卷积层对应的修剪阈值。

上述的方法,可选的,所述对各个已修剪的特征图对应的滤波器修剪,包括:

对各个已修剪的特征图对应的滤波器修剪,并确定各个已修剪的滤波器与下一卷积层之间的连接信道,并将与各个所述已修剪的滤波器对应的与下一卷积层之间的连接信道进行修剪。

上述的方法,可选的,还包括:

当所述深度神经网络模型包含残差块时,为所述深度神经网络模型中除了各个残差块的最后一个卷积层之外的所有卷积层,配置与其对应的预先设置的特征选择模块;

依据各个所述特征选择模块,提取各个已配置特征选择模块的卷积层中各个滤波器输出的特征图,确定每个特征图对应的熵权重;

依据每个所述残差块中预先设置的熵修剪比、非残差块的各个卷积层中预先设置的熵修剪比,及各个所述已配置特征选择模块的卷积层中每个所述特征图对应的熵权重,确定各个所述已配置特征选择模块的卷积层的修剪阈值;

将每个所述已配置特征选择模块的卷积层中小于该卷积层修剪阈值的熵权重对应的特征图进行修剪,并对各个已修剪的特征图对应的滤波器修剪;

将修剪后的深度神经网络模型进行微调训练,确定所述深度神经网络模型在修剪后的准确度,并判断所述准确度是否不小于预设的阈值;

当所述准确度不小于所述预设的阈值时,对所述深度神经网络模型进行迭代修剪,并在每次修剪后进行微调训练,保存每次微调训练后的深度神经网络模型,并确定所述深度神经网络模型在每次微调训练后的准确度;

若当前修剪且微调训练后深度神经网络模型的准确度小于所述预设的阈值时,完成对所述深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

一种深度神经网络模型压缩装置,包括:

第一判断单元,用于获取已完成训练的深度神经网络模型,并判断所述深度神经网络模型是否包含残差块;

第一配置单元,用于当所述深度神经网络模型不包含残差块时,为所述深度神经网络模型中的每个卷积层配置与其对应的预先设置的特征选择模块;

第一确定单元,用于依据各个所述特征选择模块,提取各个所述卷积层中各个滤波器输出的特征图,并确定每个所述特征图对应的熵权重;

第二确定单元,用于依据各个所述卷积层中预先设置的熵修剪比,及各个所述卷积层中每个所述特征图对应的熵权重,确定每个所述卷积层对应的修剪阈值;

第一修剪单元,用于将每个卷积层中小于该卷积层的修剪阈值的各个熵权重对应的特征图进行修剪,并对各个已修剪的特征图对应的滤波器修剪;

第二判断单元,用于将修剪后的深度神经网络模型进行微调训练,确定所述深度神经网络模型在修剪后的准确度,并判断所述准确度是否不小于预设的阈值;

第二修剪单元,用于当所述准确度不小于所述预设的阈值时,对所述深度神经网络模型进行迭代修剪,并在每次修剪后进行微调训练,保存每次微调训练后的深度神经网络模型,并确定每次微调训练后的准确度;

第一压缩单元,用于若当前修剪且微调训练后深度神经网络模型的准确度小于所述预设的阈值时,完成对所述深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

上述的装置,可选的,所述第一确定单元,包括:

第一计算子单元,用于获取预先设置的训练数据集中的多个样本图片,并将各个样本图片依次输入所述深度神经网络模型,计算每次输入所述样本图片时,所述深度神经网络模型的各个卷积层中每个特征图的特征图向量;

第二计算子单元,用于对每个所述特征图向量进行标准化处理,获得各个标准化的特征图向量,并计算各个所述标准化的特征图向量,获得与每个所述特征图对应的信息熵;

第一确定子单元,用于依据所述与每个所述特征图对应的信息熵,获得每次输入所述样本图片时每个所述特征图对应的熵权重,并将每个特征图每次获得的熵权重进行求和后取平均值,获得与每个所述特征图对应的平均熵权重,并将各个所述平均熵权重确定为每个所述特征图对应的熵权重。

上述的装置,可选的,所述第二确定单元,包括:

排序子单元,用于对每个所述卷积层中与每个所述特征图对应的熵权重进行升序排序,并按照排序的顺序,依次对各个熵权重从小到大进行累加;

判断子单元,用于判断每个所述卷积层中每次累加的累加结果是否不小于该卷积层预先设置的熵修剪比;

第二确定子单元,用于若各个卷积层中当前累加的累加结果不小于所述熵修剪比时,将所述当前累加的最后一个熵权重确定为与每个所述卷积层对应的修剪阈值。

上述的装置,可选的,所述第一修剪单元,包括:

修剪子单元,用于对各个已修剪的特征图对应的滤波器修剪,并确定各个已修剪的滤波器与下一卷积层之间的连接信道,并将与各个所述已修剪的滤波器对应的与下一卷积层之间的连接信道进行修剪。

上述的装置,可选的,还包括:

第二配置单元,用于当所述深度神经网络模型包含残差块时,为所述深度神经网络模型中除了各个残差块的最后一个卷积层之外的所有卷积层,及非残差块的每个卷积层配置与其对应的预先设置的特征选择模块;

第三确定单元,用于依据各个所述特征选择模块,提取各个已配置特征选择模块的卷积层中各个滤波器输出的特征图,确定每个特征图对应的熵权重;

第四确定单元,用于依据每个所述残差块中预先设置的熵修剪比、所述非残差块的各个卷积层中预先设置的熵修剪比,及各个所述已配置特征选择模块的卷积层中每个所述特征图对应的熵权重,确定各个所述已配置特征选择模块的卷积层的修剪阈值;

第三修剪单元,用于将每个所述已配置特征选择模块的卷积层中小于该卷积层修剪阈值的熵权重对应的特征图进行修剪,并对各个已修剪的特征图对应的滤波器修剪;

第三判断单元,用于将修剪后的深度神经网络模型进行微调训练,确定所述深度神经网络模型在修剪后的准确度,并判断所述准确度是否不小于预设的阈值;

第四修剪单元,用于当所述准确度不小于所述预设的阈值时,对所述深度神经网络模型进行迭代修剪,并在每次修剪后进行微调训练,保存每次微调训练后的深度神经网络模型,并确定所述深度神经网络模型在每次微调训练后的准确度;

第二压缩单元,用于若当前修剪且微调训练后深度神经网络模型的准确度小于所述预设的阈值时,完成对所述深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的深度神经网络模型压缩方法。

一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的深度神经网络模型压缩方法。

与现有技术相比,本发明包括以下优点:

本发明提供了一种深度神经网络模型压缩方法,包括:先获取已完成训练的深度神经网络模型,并判断深度神经网络模型是否包含残差块;若不包含,则为深度神经网络模型中的每个卷积层配置与其对应的预先设置的特征选择模块;若包含,则为除了各个残差块中最后一个卷积层之外的所有卷积层配置与其对应的特征选择模块。依据各个特征选择模块,确定每个特征图对应的熵权重;同时依据预先设置的熵修剪比,及各个卷积层中每个所述特征图对应的熵权重,确定每个卷积层对应的修剪阈值;根据熵权重和修剪阈值,对深度神经网络模型中的各个配置特征选择模块的卷积层的特征图和滤波器进行修剪。将修剪后的深度神经网络模型进行的微调训练,确定准确度,并判断该准确度是否不小于预设的阈值;当不小于时,对深度神经网络模型进行迭代修剪和微调训练,直至当前微调训练后的深度神经网络模型的准确度小于预设的阈值,则将上一次修剪后的深度神经网络模型,作为已完成压缩的深度神经网络模型。应用本发明提供的方法,在深度神经网络模型不包含残差块时,为每个卷积层配置与其对应的特征选择模块;若包含残差块时,为除了各个残差块中最后一个卷积层之外的所有卷积层配置与其对应的特征选择模块。根据深度神经网络模型的网络构造的不同,执行不同的修剪方式,以实现最大化的对深度神经网络模型进行压缩。在修剪过程中,先确定各个特征图对应熵权重,以用于确定每个特征图所携带的信息量,熵权重越低特征图携带的信息量越少,与之对应的滤波器越低效,将低效的滤波器及对应的特征图修剪,有效压缩了深度神经网络模型,使深度神经网络模型更加轻量化。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种深度神经网络模型压缩方法的流程图;

图2为本发明实施例提供的一种深度神经网络模型压缩方法的示例图;

图3为本发明实施例提供的一种深度神经网络模型压缩方法的又一流程图;

图4为本发明实施例提供的一种深度神经网络模型压缩方法的又一示例图;

图5为本发明实施例提供的一种深度神经网络模型压缩方法的又一流程图;

图6为本发明实施例提供的一种深度神经网络模型压缩装置的装置结构图;

图7为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。

本发明实施例提供了一种深度神经网络模型压缩方法,该方法可以应用在多种系统平台,其执行主体可以为计算机终端或各种移动设备的处理器,所述方法的方法流程图如图1所示,具体包括:

s101:获取已完成训练的深度神经网络模型,并判断所述深度神经网络模型是否包含残差块;

在本发明实施例中,当需要对深度神经网络模型进行压缩时,获取已经完成训练的深度神经网络模型,并通过判断确定该深度神经网络模型是否包含残差块。

需要说明的是,残差块是深度神经网络模型中的一种特殊的网络构造,每个残差块中包含多个卷积层,且残差块的输入和输出存在跨层连接的连接信道。

s102:当所述深度神经网络模型不包含残差块时,为所述深度神经网络模型中的每个卷积层配置与其对应的预先设置的特征选择模块;

在本发明实施例中,若深度神经网络模型中不包含残差块时,表明该深度神经网络模型中不存在与残差块相关的网络构造,处理器将调用预先设置的各个特征选择模块,为每个卷积层配置与其对应的特征选择模块。即卷积层与特征选择模块是一一对应的关系,一个卷积层配置一个特征选择模块,若该深度神经网络模型中有m个卷积层时,则将有m个特征选择模块分别配置在m个卷积层后面。

s103:依据各个所述特征选择模块,提取各个所述卷积层中各个滤波器输出的特征图,并确定每个所述特征图对应的熵权重;

在本发明实施例中,根据在每个卷积层对应配置的特征选择模块,由特征选择模块提取每个卷积层当中各个滤波器输出的特征图,并根据输出的特征图,确定每个特征图对应的熵权重。

需要说明的是,深度神经网络模型的每一个卷积层中包含多个滤波器,每一个卷积层滤波器的数量不一定相同。每一个滤波器输出一张特征图,每一张特征图中都含有一定的信息量,信息量的大小可以通过熵权重进行确定。

s104:依据各个所述卷积层中预先设置的熵修剪比,及各个所述卷积层中每个所述特征图对应的熵权重,确定每个所述卷积层对应的修剪阈值;

在本发明实施例中,根据各个卷积层当中预先设置的熵修剪比,以及各个卷积层当中的每个特征图对应的熵权重,确定与每个卷积层对应的修剪阈值。其中,每个卷积层的修剪阈值用于确定该卷积层需要修剪的特征图及滤波器,每个卷积层中预先设置的熵修剪比不一定相同。

s105:将每个卷积层中小于该卷积层的修剪阈值的各个熵权重对应的特征图进行修剪,并对各个已修剪的特征图对应的滤波器修剪;

在本发明实施例中,在各个卷积层中,将小于该卷积层的修剪阈值的熵权重对应的特征图和滤波器进行修剪。例如,根据第i卷积层熵修剪比和第i卷积层中各个特征图对应的熵权重确定该卷积层的修剪阈值,基于该卷积层的修剪阈值,将第i卷积层中小于该修剪阈值的各个熵权重对应的特征图进行修剪,并对已修剪的特征图对应的滤波器进行修剪。

s106:将修剪后的深度神经网络模型进行微调训练,确定所述深度神经网络模型在修剪后的准确度,并判断所述准确度是否不小于预设的阈值;

在本发明实施例中,在将每个卷积层中小于该卷积层修剪阈值的熵权重对应的特征图和滤波器进行修剪后,将已经修剪后的深度神经网络模型进行微调训练,并在进行微调训练的过程中,确定计深度神经网络模型对样本训练的准确度,并将本次修剪后进行微调训练的准确度与预先设定的阈值进行比对,以确定微调训练过程中,该深度神经网络模型的准确度下降的程度。

需要说明的是,深度神经网络模型的微调训练的与深度神经网络模型的训练过程可以一致,在执行上述步骤s101时,需要获取已完成训练的深度神经网络模型,而步骤s106中的微调训练与在执行步骤s101之前的训练过程可以一致。在对深度神经网络模型进行训练过程中,需要进行几千甚至上万次迭代训练,在进行微调训练只需要几十或几百次的迭代训练就可以恢复深度神经网络模型的性能,以保证深度神经网络模型的准确度。

s107:当所述准确度不小于所述预设的阈值时,对所述深度神经网络模型进行迭代修剪,并在每次修剪后进行微调训练,保存每次微调训练后的深度神经网络模型,并确定每次微调训练后的准确度;

在本发明实施例中,在对深度神经网络模型进行修剪及微调训练后,深度神经网络模型的准确度不小于预先设置的阈值时,则证明该深度神经网络模型还可以进一步地进行修剪,将当前修剪的深度神经网络模型进行保存后,继续对所述深度神经网络模型进行迭代修剪,并在每次修剪之后,进行微调训练,同时将每次微调训练后的深度神经网络模型进行保存,并确定该深度神经网络模型的准确度。

需要说明的是,迭代修剪指的是重新确定深度神经网络模型各个卷积层中的每个特征图对应的熵权重,并确定新的修剪阈值,根据每个卷积层的修剪阈值对该卷积层的小于修剪阈值的各个熵权重对应的特征图进行修剪,并将各个已修剪的特征图对应的滤波器进行修剪,可更大程度地对深度神经网络模型进行压缩。

s108:若当前修剪且微调训练后深度神经网络模型的准确度小于所述预设的阈值时,完成对所述深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

在本发明实施例中,在对深度神经网络模型进行迭代修剪过程中,若当前修剪后深度神经网络模型的准确度小于所述预设的阈值时,即,若当前修剪后的深度神经网络模型进行微调训练的过程中,该深度神经网络模型的准确度无法恢复至预先设置的阈值,或恢复效果不明显时,将不会再对该深度神经网络模型进行修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

需要说明的是,深度神经网络模型的准确度越高,性能越好,在对深度神经网络模型进行压缩的过程中,准确度可能会有所下降,在经过微调训练后,可恢复深度神经网络模型的性能和准确度,当进行迭代修剪后并在微调训练的过程中,深度神经网络模型的准确度难以恢复至预设的阈值,或恢复的效果不明显时,则舍弃本次修剪的深度神经网络模型,将上一次修剪的深度神经网络模型作为已完压缩的深度神经网络模型。

还需要说明的是,在每次对深度神经网络模型进行微调训练的过程中,每次微调训练的次数不一定相同,若在进行微调训练过程中准确度恢复快,训练次数就少,恢复慢但效果明显训练次数就多。若当前微调训练过程中,准确度恢复慢,且恢复效果不明显,需要大量的样本进行训练时,则停止对该深度神经网络模型的压缩。

本发明实施例提供的深度神经网络模型压缩方法中,需要对深度神经网络模型进行压缩时,先获取已经完成训练的深度神经网络模型,并判断该深度神经网络模型是否包含了残差块。当确定该深度神经网络模型未包含残差块时,为每个卷积层配置与其对应的特征选择模块,即,将预先设置的特征选择模块配置在深度神经网络模型的每个卷积层的后面。根据各个卷积层配置的特征选择模块,提取各个卷积层中滤波器输出的特征图,同时确定每个特征图的熵权重。根据深度神经网络模型的各个卷积层中预先设置的熵修剪比以及各个卷积层中每个特征图对应的的熵权重,确定每个卷积层对应的修剪阈值。例如根据第i卷积层的熵修剪比,以及第i卷积层中每个特征图对应的熵权重,确定第i卷积层的修剪阈值。根据每个卷积层对应的修剪阈值,将小于该卷积层的修剪阈值的熵权重对应的特征图进行修剪,并对已修剪的特征图对应的滤波器进行修剪,再对深度神经网络模型进行微调训练,确定深度神经网络模型的准确度,判断该准确度是否不小于预先设定的阈值,若不小于则再对深度神经网络模型进行迭代修剪及微调训练,直至当前修剪的深度神经网络模型的准确度小于预设的阈值时,将上一次修剪的深度神经网络模型作为已完成压缩的深度神经网络模型。

基于本发明实施例提供的方法,通过确定每个卷积层中的修剪阈值及每个特征图对应的熵权重,对深度神经网络模型中的熵权重低的特征图及滤波器进行修剪,具体修剪过程如图2所示。图2中展示了深度神经网络模型中的第i层卷积层的修剪过程。其中通过特征选择模块,确定第i层各个滤波器输出的各个特征图对应的熵权重,并将熵权重低的特征图及对应的滤波器删除。例如,第i卷积层的修剪阈值为0.08,则图2中的特征图2和特征图3由于熵权重低于第i层卷积层的修剪阈值被进行修剪。其中,特征图2对应的滤波器2和特征图3对应的滤波器3也被修剪,经过压缩后,原先的滤波器4变为滤波器2,滤波器n则变为滤波器n-s,其中,s为第i层卷积层中被修剪的滤波器总数。

应用本发明实施例提供的方法,确定各个特征图对应熵权重,以用于确定每个特征图所携带的信息量,熵权重越低特征图携带的信息量越少,与之对应的滤波器越低效,将低效的滤波器及对应的特征图修剪,有效压缩了深度神经网络模型,使深度神经网络模型更加轻量化。

本发明实施例提供的方法中,在上述步骤s103中,在提取到各个卷积层的各个滤波器输出的特征图后,确定每个所述特征图对应的熵权重,具体包括:

获取预先设置的训练数据集中的多个样本图片,并将各个样本图片依次输入所述深度神经网络模型,计算每次输入所述样本图片时,所述深度神经网络模型的各个卷积层中每个特征图的特征图向量;

对每个所述特征图向量进行标准化处理,获得各个标准化的特征图向量,并计算各个所述标准化的特征图向量,获得与每个所述特征图对应的信息熵;

依据所述与每个所述特征图对应的信息熵,获得每次输入所述样本图片时每个所述特征图对应的熵权重,并将每个特征图每次获得的熵权重进行求和后取平均值,获得与每个所述特征图对应的平均熵权重,并将各个所述平均熵权重确定为每个所述特征图对应的熵权重。

本发明实施例提供的深度神经网络模型压缩方法中,在确定与每个特征权重对应的熵权重时,先获取预先设置的训练数据集中的多个样本图片,其中,多个样本图片的样本数可以为n,且n为正整数。将n个样本图片依次输入深度神经网络模型当中,并计算每次输入样本图片时,每一个卷积层当中的特征图对应的特征图向量。对于n个样本图片中第n个图像,令为第i层的第k个输出特征图矩阵,其特征图向量的计算公式为:

其中,li=hi×wi,hi和wi分别表示滤波器输出的特征图的高度和宽度,n≤n(n为正整数)。

在获得特征图向量后,对每个特征图向量进行标准化处理,获得标准化的特征图向量:

计算各个标准化的特征图向量,获得与每个特征图对应的信息熵。其中,对于第n张输入图片,第i个卷积层输出的第k个特征图向量的信息熵可以定义为:

其中,mi是第i个卷积层的滤波器的数量,其中每个滤波器生成一个特征图。

需要说明的是,第k个特征图对应的信息熵越大,该特征图所包含的信息量就越大,反之则越小。

在获取第i个卷积层输出的第k个特征图向量的信息熵后,可得第i个卷积层内第k个特征图的熵权重:

其中,

最后,根据每次输入样本图片时每个特征图对应的熵权重,并将每个特征图每次获得的熵权重进行求和后取平均值,获得与每个所述特征图对应的平均熵权重:

其中,

将第i个卷积层输出的第k个特征图的平均熵权重确定为该特征图的熵权重。

应用本发明实施例提供的方法,通过获取多个样本图片,计算每次输入样本图片时获得的熵权重,并求得平均熵权重作为每个特征图的熵权重,减少了由于单个样本带来的偶然误差,提升了各个特征图的熵权重的准确度。

本发明实施例提供的方法中,在上述步骤s104中,在获得与每个特征图对应的熵权重后,依据各个所述卷积层中预先设置的熵修剪比,及各个所述卷积层中每个所述特征图对应的熵权重,确定每个所述卷积层对应的修剪阈值,具体如图3所示,包括:

s301:对每个所述卷积层中与每个所述特征图对应的熵权重进行升序排序;

在本发明实施例中,在获取到各个卷积的中与每个特征图对应的熵权重后,将每一卷积层中各个熵权重按照从小到大的升序进行排序。

s302:按照排序的顺序,依次对各个熵权重从小到大进行累加;

在本发明实施例中,根据已经从小到大的排序顺序,将每个卷积层当中的各个熵权重从小到大依次进行累加。

s303:判断每个所述卷积层中每次累加的累加结果是否不小于该卷积层预先设置的熵修剪比;

在本发明实施例中,在对各个熵权重进行累加的过程中,每次累加时,都判断当前累加的累加结果是否不小于当前卷积层中预先设置的熵修剪比,直至当前累加的累加结果不小于当前卷积层中预先设置的熵修剪比。

s304:若各个卷积层中当前累加的累加结果不小于所述熵修剪比时,将所述当前累加的最后一个熵权重确定为与每个所述卷积层对应的修剪阈值。

在本发明实施例中,当每个卷积层当中对各个熵权重进行累加的当前累加结果不小于该层中预先设置的熵修剪比时,将当前累加的最后一个熵权重作为该卷积层的修剪阈值。

需要说明的是,深度神经网络模型中的各个卷积层的熵修剪比可以相同,也可以不同,若相同的熵修剪比时,所得的修剪阈值不一定相等;若每个卷积层的熵修剪比不同时,所得的修剪阈值也有可能相同。

本发明实施例提供的深度神经网络模型压缩方法中,对每个卷积层当中的各个熵权重进行升序排序,并根据排序的顺序,将每个卷积层当中的熵权重依次进行累加。在每次累加过程中,判断每个卷积层中当前累加的累加结果是否不小于该卷积层预先设置的熵修剪比。若小于,则继续累加,若不小于,则将当前累加的最后一个熵权重确定为与每个卷积层对应的修剪阈值。例如,第i层卷积层中设置的熵修剪比为0.10,且第i卷积层的各个特征图对应的熵权重分别为0.01、0.30、0.10、0.08、0.05、0.25、0.03、0.40时,按照升序对各个熵权重进行排序,其顺序为:0.01、0.03、0.05、0.08、0.10、0.25、0.30、0.40。将已经排序好的各个熵权重进行累加,当0.01+0.03+0.05+0.08>0.10时,将0.08的熵权重确定为第i层卷积层的修剪阈值。其中,在第i层卷积层中,将0.01的熵权重、0.03的熵权重及0.05的熵权重对应的特征图进行修剪,同时对已修剪的特征图对应的和滤波器进行修剪。

应用本发明实施例提供的方法,通过熵修剪比和熵权重确定修剪阈值,并根据每个卷积层中的修剪阈值,对每个卷积层中小于该卷积层修剪阈值的各个熵权重对应的特征图和滤波器进行修剪。熵权重越低特征图携带的信息量越少,与之对应的滤波器越低效,将低效的滤波器及对应的特征图修剪,有效压缩了深度神经网络模型,使深度神经网络模型更加轻量化。

本发明实施例提供的方法中,在上述步骤s104中,在对各个卷积层中,小于该卷积层的修剪阈值的熵权重对应的特征图修剪后,对已修剪的各个特征图对应的滤波器进行修剪,具体包括:

对各个已修剪的特征图对应的滤波器修剪,并确定各个已修剪的滤波器与下一卷积层之间的连接信道,并将与各个所述已修剪的滤波器对应的与下一卷积层之间的连接信道进行修剪。

本发明实施例提供的深度神经网络模型压缩方法中,深度神经网络模型的各个卷积层中,根据每个卷积层的修剪阈值,对小于修剪阈值的熵权重对应的特征图进行修剪,再对已修剪的特征图对应的滤波器进行修剪后,再次确定每个被修剪的滤波器与下一个卷积层之间的连接信道,并将已修剪的滤波器对应的与下一个卷积层之间的连接信道进行修剪,以获得各个更加轻量化的深度神经网络模型。

基于上述实施例提供的方法,修剪滤波器的连接信道过程以第i卷积层及第i+1卷积层为例,具体如图4所示。图中第i卷积层有n个滤波器,第i+1卷积层有两个滤波器,第i卷积层的各个滤波器与第i+1卷积层之间通过连接信道进行连接,若第i卷积层滤波器2和滤波器3被修剪,则滤波器2和滤波器3与第i+1卷积层之间相对应的连接信道进行修剪,则第i卷积层原先的滤波器4变为滤波器2,滤波器n则变为滤波器n-s,s为第i层卷积层中被修剪的滤波器总数。将第i+1卷积层中的滤波器1和滤波器2中与第i卷积层被修剪的连接信道对应连接部分进行修剪,即图中的阴影部分为i+1卷积层中对应的修剪部分,从而使第i+1卷积层更加轻量化

需要说明的是,将被修剪的滤波器对应下一卷积层的连接信道修剪后,可以对深度神经网络模型进行微调训练和迭代修剪。在迭代修剪的过程中,也将已修剪的滤波器对应下一卷积层的连接信道进行修剪。

应用本发明实施例提供的方法,将各个被修剪的滤波器以及对应的连接信道进行修剪,使每个卷积层更加的轻量化,从而使深度神经网络模型更加轻量化。

本发明实施例提供的方法中,在获得训练完成的深度神经网络模型后,判断该深度神经网络模型是否包含残差块。其中,当深度神经网络模型包含残差块时,如图5所示,具体还包括:

s501:当所述深度神经网络模型包含残差块时,为所述深度神经网络模型中除了各个残差块的最后一个卷积层之外的所有卷积层,配置与其对应的预先设置的特征选择模块;

在本发明实施例中,当深度神经网络模型中包含残差块时,在对深度神经网络模型进行压缩的过程中,在每个残差块中,除了最后一个卷积层以外的所有卷积层,和其他非残差块的其他各个卷积层的后面,配置与其对应的预先设置的特征选择模块。

需要说明的是,包含残差块的深度神经网络模型除了残差块之外,还存在其他非残差块的卷积层。其中,每一个残差块中包含多个卷积层。

还需要说明的是,步骤s501与上述实施例中的步骤s102的实施方式相似。其中,步骤s102的实施方式是基于深度神经网络模型不包含残差块时,为该深度神经网络模型中每个卷积层配置与其对应的特征选择模块。步骤s501的实施方式是基于深度神经网络模型包含残差块时,为除了残差块中最后一个卷积层之外的所有卷积层配置与其对应的特征选择模块。

s502:依据各个所述特征选择模块,提取各个已配置特征选择模块的卷积层中各个滤波器输出的特征图,确定每个特征图对应的熵权重;

在本发明实施例中,根据已经配置特征选择模块的各个卷积层通过各个特征选择模块提取与其对应的每个滤波器输出的特征图,并确定与每个特征图对应的熵权重。

需要说明的是,步骤s502与上述实施例中步骤s103的实施方式相似,其中,步骤s103的实施方式是基于深度神经网络模型不包含残差块时,确定每个卷积层中的所有特征图片对应的熵权重。步骤s502的实施方式是基于深度神经网络模型包含残差块时,确定每个残差块中除了最后一个卷积层之外的所有卷积层中每个特征图对应的熵权重,以及非残差块的各个卷积层的每个特征图对应的熵权重。

s503:依据每个所述残差块中预先设置的熵修剪比、非残差块的各个卷积层中预先设置的熵修剪比,及各个所述已配置特征选择模块的卷积层中每个所述特征图对应的熵权重,确定各个所述已配置特征选择模块的卷积层的修剪阈值;

在本发明实施例中,在确定每个特征图对应的熵权重后,根据每个卷积层设置的熵修剪比,确定每个已经配置特征选择模块的卷积层的修剪阈值。其中,各个残差块的每个卷积层的熵修剪比都相同,但根据熵修剪比和熵权重获得的修剪阈值不一定相同。非残差块的各个卷积层中的熵修剪比不一定都相同。通过残差块中预先设置的熵修剪比、非残差块的各个卷积层中预先设置的熵修剪比,以及各个已经配置特征选择模块的卷积层中的熵权重,确定确定各个已配置特征选择模块的卷积层的修剪阈值。

需要说明的是,步骤s503与上述实施例中步骤s104的实施方式相似,其中,步骤s104中,每个卷积层的熵修剪比不一定都相同,而步骤s503中每个残差块中各个卷积层的熵修剪比都相同,非残差块的各个卷积层的熵修剪比不一定都相同。

s504:将每个所述已配置特征选择模块的卷积层中小于该卷积层修剪阈值的熵权重对应的特征图进行修剪,并对各个已修剪的特征图对应的滤波器修剪;

在本发明实施例中,在确定每个已配置特征选择模块的卷积层的修剪阈值后,将每个卷积层中,小于该卷积层修剪阈值的各个熵权重对应的特征图进行修剪,同时对已修剪的特征图对应的滤波器进行修剪。

需要说明的是,步骤s504与上述实施例中步骤s105的实施方式相似,其中,步骤s105中,对每个卷积层中小于该卷积层修剪阈值的熵权重对应的特征图,以及对应的滤波器进行修剪。步骤s504中,各个残差块的最后一个卷积层中所有的特征图和滤波器不会被修剪,除了各个残差块的最后一个卷积层之外的所有卷积层中,小于该卷积层修剪阈值的熵权重对应的特征图,以及对应的滤波器会被修剪。

s505:将修剪后的深度神经网络模型进行微调训练,确定所述深度神经网络模型在修剪后的准确度,并判断所述准确度是否不小于预设的阈值;

在本发明实施例中,在对包含残差块的深度神经网络模型进行第一次修剪完成后,对该深度神经网络模型进行微调训练。在完成微调训练后确定深度神经网络模型的准确度,同时判断该准确度是否不小于预设的阈值。

需要说明的是,步骤s505与上述实施例中步骤s106的实施方式一致,在进行修剪后的深度神经网络模型都将进行微调训练,并确定准确度。其中,步骤s106的深度神经网络模型不包含残差块,步骤s505的深度神经网络模型包含残差块。

s506:当所述准确度不小于所述预设的阈值时,对所述深度神经网络模型进行迭代修剪,并在每次修剪后进行微调训练,保存每次微调训练后的深度神经网络模型,并确定所述深度神经网络模型在每次微调训练后的准确度;

在本发明实施例中,当判断包含残差块的深度神经网络模型在进行微调训练后的准确度不小于预设的阈值时,保存该深度神经网络模型后,对该深度神经网络模型进行迭代修剪和微调训练,并且保存每次微调训练后的深度神经网络模型。并确定该深度神经网络模型的准确度。

需要说明的是,步骤s506与上述实施例中步骤s107的实施方式一致,在每次修剪后的深度神经网络模型都将进行微调训练,保存并确定准确度。其中,步骤s107的深度神经网络模型不包含残差块,步骤s506的深度神经网络模型包含残差块。

s507:若当前修剪且微调训练后深度神经网络模型的准确度小于所述预设的阈值时,完成对所述深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

在本发明实施例中,在迭代修剪过程中,若当前修剪且微调训练后的深度神经网络模型的准确度小于所述预设的阈值时,即,若当前修剪后的深度神经网络模型进行微调训练的过程中,该深度神经网络模型的准确度无法恢复至预先设置的阈值,或恢复效果不明显时,将不会再对该深度神经网络模型进行修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。例如,该深度神经网络模型的准确度原先为95%,在进行第一次修剪后,准确度下降至93%,但在进行微调训练后,准确度达到94.9%,而设置的阈值为93.5%,因此可对该深度神经网络模型进行迭代修剪,直至当前修剪后在进行微调训练过程中,准确度无法达到93.5%,或准确度恢复慢,需要通过大量的训练样本进行训练才能恢复时,将不会再对该深度神经网络模型进行修剪。

需要说明的是,步骤s507与上述实施例中步骤s108的实施方式一致,在当前修剪且微调训练后的深度神经网络模型准确度小于阈值后,完成对深度神经网络模型的压缩。其中,步骤s108的深度神经网络模型不包含残差块,步骤s507的深度神经网络模型包含残差块。

本发明实施例提供的深度神经网络模型中,当深度神经网络模型中包含残差块时,在各个残差块中除最后一个卷积层之外的所有卷积层的后面配置特征选择模块,同时,也在非残差块的各个卷积层之后配置特征选择模块。根据已经配置特征选择模块的各个卷积层,提取每个卷积层的各个滤波器输出的特征图,并确定与每个特征图对应的熵权重。根据各个残差块中预先设置的熵修剪比以及非残差块的各个卷积层的熵修剪比,确定各个已配置特征选择模块的卷积层的修剪阈值。根据每个已配置特征选择模块的卷积层中的修剪阈值,将该卷积层中小于修剪阈值的熵权重对应的特征图进行修剪,同时将已修剪的特征图对应的滤波器进行修剪。将深度神经网络模型进行微调训练,再确该深度神经网络模型的准确定是否不小于预设的阈值,若不小于则对该深度神经网络模型进行迭代修剪和微调训练,当深度神经网络模型的准确度小于预设的阈值时,将上一次修剪且微调训练完成的深度神经网络模型作为已完成压缩的深度神经网络模型。

需要说明的是,本实施例中,在确定与每个特征图对应的熵权重,以及获得已配置特征选择模块的各个卷积层的修剪阈值的过程,与上述实施例中不包含残差块的深度神经网络模型中确定熵权重和修剪阈值的过程一致,此处不复赘述。其中,在本发明实施例中,只修剪配置了特征选择模块的各个卷积层中的滤波器和特征图,在包含残差块的深度神经网络模型中,为保证每个残差块的最后一个卷积层中各个特征图的输出与恒等映射相匹配,因此,各个残差块的最后一个卷积层不配置特征选择模块,同时也不对各个残差块的最后一个卷积层的特征图及对应的滤波器进行修剪。

可选的,在对已配置特征选择模块的各个卷积层中小于修剪阈值的各个熵权重对应的滤波器和特征图被修剪后,确定各个残差块中的最后一个卷积层与上一个卷积层之间的连接信道,根据上一个卷积层中已修剪滤波器,将与已修剪的滤波器对应最后一个卷积层之间的各个连接通道进行修剪。

应用本发明实施例提供的方法,当深度神经网络模型中包含残差块时,修剪各个残差块中除最后一个卷积层之外的所有卷积层中熵权重较低的特征图和滤波器,使深度神经网络模型更加轻量化。

基于上述发明实施例提供的方法,在对深度神经网络模型进行修剪后,可计算该深度神经网络模型中各个卷积层的压缩比,更直观的体现深度神经网络模型的压缩效果,以第i层卷积层为例:第i个卷积层将特征图的wi-1×hi-1×mi-1张量作为输入,并产生一个wi×hi×mi张量,其中mi-1和mi为特征图的个数。假设将第i个卷积层参数化为ki×ki×mi-1×mi,其中ki是每个滤波器的空间维度。则标准的卷积操作具有ki×ki×mi-1×mi×wi×hi的计算成本。令表示第i层的熵修剪比。然后第i层的滤波器数量将从mi减少至而该层中滤波器的通道数将从mi-1减少至于是,可以得到第i层卷积层被修剪后的计算压缩比:

上述各个具体的实现方式,及各个实现方式的衍生过程,均在本发明保护范围内。

与图1所述的方法相对应,本发明实施例还提供了一种深度神经网络模型压缩装置,用于对图1中方法的具体实现,本发明实施例提供的深度神经网络模型压缩装置可以应用计算机终端或各种移动设备中,其结构示意图如图6所示,具体包括:

第一判断单元601,用于获取已完成训练的深度神经网络模型,并判断所述深度神经网络模型是否包含残差块;

第一配置单元602,用于当所述深度神经网络模型不包含残差块时,为所述深度神经网络模型中的每个卷积层配置与其对应的预先设置的特征选择模块;

第一确定单元603,用于依据各个所述特征选择模块,提取各个所述卷积层中各个滤波器输出的特征图,并确定每个所述特征图对应的熵权重;

第二确定单元604,用于依据各个所述卷积层中预先设置的熵修剪比,及各个所述卷积层中每个所述特征图对应的熵权重,确定每个所述卷积层对应的修剪阈值;

第一修剪单元605,用于将每个卷积层中小于该卷积层的修剪阈值的各个熵权重对应的特征图进行修剪,并对各个已修剪的特征图对应的滤波器修剪;

第二判断单元606,用于将修剪后的深度神经网络模型进行微调训练,确定所述深度神经网络模型在修剪后的准确度,并判断所述准确度是否不小于预设的阈值;

第二修剪单元607,用于当所述准确度不小于所述预设的阈值时,对所述深度神经网络模型进行迭代修剪,并在每次修剪后进行微调训练,保存每次微调训练后的深度神经网络模型,并确定每次微调训练后的准确度;

第一压缩单元608,用于若当前修剪且微调训练后深度神经网络模型的准确度小于所述预设的阈值时,完成对所述深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

在发明实施例提供的装置中,需要对深度神经网络模型进行压缩时,获取已经完成训练的深度神经网络模型,并由第一判断单元判断该深度神经网络模型是否包含残差块。再由第一配置单元对不包含残差块的深度神经网络模型的中每个卷积层配置与其对应的特征选择模块。由第一确定单元根据特征选择模块提取的特征图,确定每个特征图对应的熵权重,再由第二确定单元根据熵修剪比和熵权重确定每个卷积层的修剪阈值,通过第一修剪单元将每一卷积层中小于该卷积层修剪阈值的熵权重对应的特征图和滤波器进行修剪,经过对深度神经网络模型的微调训练,利用第二判断单元判断深度神经网络模型微调训练后的准确度是否不小于预设的阈值,若不小于由第二修剪单元进行迭代修剪直至当前修剪且微调训练后的准确度小于预设的阈值时,并由压缩单元完成对该深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

应用本发明实施例提供的装置,通过第一修剪单元和第二修剪单元,将熵权重低的特征图及滤波器进行修剪,最终获得已完成压缩的深度神经网络模型,使深度神经网络模型更加轻量化。

在本发明提供的实施例中,基于前述方案,第一确定单元可以配置为:

第一计算子单元,用于获取预先设置的训练数据集中的多个样本图片,并将各个样本图片依次输入所述深度神经网络模型,计算每次输入所述样本图片时,所述深度神经网络模型的各个卷积层中每个特征图的特征图向量;

第二计算子单元,用于对每个所述特征图向量进行标准化处理,获得各个标准化的特征图向量,并计算各个所述标准化的特征图向量,获得与每个所述特征图对应的信息熵;

第一确定子单元,用于依据所述与每个所述特征图对应的信息熵,获得每次输入所述样本图片时每个所述特征图对应的熵权重,并将每个特征图每次获得的熵权重进行求和后取平均值,获得与每个所述特征图对应的平均熵权重,并将各个所述平均熵权重确定为每个所述特征图对应的熵权重。

在本发明提供的实施例中,基于前述方案,第二确定单元可以配置为:

排序子单元,用于对每个所述卷积层中与每个所述特征图对应的熵权重进行升序排序,并按照排序的顺序,依次对各个熵权重从小到大进行累加;

第二判断子单元,用于判断每个所述卷积层中每次累加的累加结果是否不小于该卷积层预先设置的熵修剪比;

第二确定子单元,用于若各个卷积层中当前累加的累加结果不小于所述熵修剪比时,将所述当前累加的最后一个熵权重确定为与每个所述卷积层对应的修剪阈值。

在本发明提供的实施例中,基于前述方案,修剪单元可以配置为:

修剪子单元,用于对各个已修剪的特征图对应的滤波器修剪,并确定各个已修剪的滤波器与下一卷积层之间的连接信道,并将与各个所述已修剪的滤波器对应的与下一卷积层之间的连接信道进行修剪。

在本发明提供的实施例中,基于前述方案,当第一判断单元的判定结果为所述深度神经网络模型包含残差模块时,该第一判断单元还可以配置为:

第二配置单元,用于当所述深度神经网络模型包含残差块时,为所述深度神经网络模型中除了各个残差块的最后一个卷积层之外的所有卷积层,及非残差块的每个卷积层配置与其对应的预先设置的特征选择模块;

第三确定单元,用于依据各个所述特征选择模块,提取各个已配置特征选择模块的卷积层中各个滤波器输出的特征图,确定每个特征图对应的熵权重;

第四确定单元,用于依据每个所述残差块中预先设置的熵修剪比、所述非残差块的各个卷积层中预先设置的熵修剪比,及各个所述已配置特征选择模块的卷积层中每个所述特征图对应的熵权重,确定各个所述已配置特征选择模块的卷积层的修剪阈值;

第三修剪单元,用于将每个所述已配置特征选择模块的卷积层中小于该卷积层修剪阈值的熵权重对应的特征图进行修剪,并对各个已修剪的特征图对应的滤波器修剪;

第三判断单元,用于将修剪后的深度神经网络模型进行微调训练,确定所述深度神经网络模型在修剪后的准确度,并判断所述准确度是否不小于预设的阈值;

第四修剪单元,用于当所述准确度不小于所述预设的阈值时,对所述深度神经网络模型进行迭代修剪,并在每次修剪后进行微调训练,保存每次微调训练后的深度神经网络模型,并确定所述深度神经网络模型在每次微调训练后的准确度;

第二压缩单元,用于若当前修剪且微调训练后深度神经网络模型的准确度小于所述预设的阈值时,完成对所述深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述深度神经网络模型压缩方法。

本发明实施例还提供了一种电子设备,其结构示意图如图7所示,具体包括存储器701,以及一个或者一个以上的指令702,其中一个或者一个以上指令702存储于存储器701中,且经配置以由一个或者一个以上处理器703执行所述一个或者一个以上指令702进行以下操作:

获取已完成训练的深度神经网络模型,并判断所述深度神经网络模型是否包含残差块;

当所述深度神经网络模型不包含残差块时,为所述深度神经网络模型中的每个卷积层配置与其对应的预先设置的特征选择模块;

依据各个所述特征选择模块,提取各个所述卷积层中各个滤波器输出的特征图,并确定每个所述特征图对应的熵权重;

依据各个所述卷积层中预先设置的熵修剪比,及各个所述卷积层中每个所述特征图对应的熵权重,确定每个所述卷积层对应的修剪阈值;

将每个卷积层中小于该卷积层的修剪阈值的各个熵权重对应的特征图进行修剪,并对各个已修剪的特征图对应的滤波器修剪;

将修剪后的深度神经网络模型进行微调训练,确定所述深度神经网络模型在修剪后的准确度,并判断所述准确度是否不小于预设的阈值;

当所述准确度不小于所述预设的阈值时,对所述深度神经网络模型进行迭代修剪,并在每次修剪后进行微调训练,保存每次微调训练后的深度神经网络模型,并确定每次微调训练后的准确度;

若当前修剪且微调训练后深度神经网络模型的准确度小于所述预设的阈值时,完成对所述深度神经网络模型的修剪,并将上一次修剪的深度神经网络模型,作为已完成压缩的深度神经网络模型。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1