一种神经网络压缩方法、装置、电子设备及存储介质与流程

文档序号:17091736发布日期:2019-03-13 23:32阅读:154来源:国知局
一种神经网络压缩方法、装置、电子设备及存储介质与流程

本申请涉及机器学习的技术领域,尤其涉及一种神经网络压缩方法、装置、电子设备及存储介质。



背景技术:

随着以卷积神经网络(convolutionalneuralnetwork,cnn)为代表深度学习技术的蓬勃发展和以图形处理器(graphicsprocessingunit,gpu)为代表计算硬件的迭代更新,配合大规模数据的积累。深度学习广泛应用在诸多场合。针对不同的问题除了收集大规模的训练数据以期待获得更好结果之外,cnn网络也变的越来越深,由出现之初的几层网络数十个神经元发展到如今的成百上千的网络层以及数以千万计的神经元。

目前在cnn网络的压缩工作中,其思路是先训练一个效果很好复杂的模型,然后采用诸如矩阵正则化、霍夫曼编码等方式对每层网络的权重进行量化编码,从而实现体积上的压缩。该方法使得cnn网络模型的尺寸有所变小,同时其模型的精度也有所损失且获取的压缩比还非常小。因此,现有技术中存在着在卷积神经网络模型同等精度损失的情况下,获取的压缩比非常小的问题。



技术实现要素:

有鉴于此,本申请提供一种神经网络压缩方法、装置、电子设备及存储介质,用于解决现有技术中在卷积神经网络模型同等精度损失的情况下,获取的压缩比非常小的问题。

本申请提供了的一种神经网络压缩方法,所述方法包括:从多个复杂网络中的筛选出原始网络,并对所述原始网络进行裁剪,获得简单网络;将多个无标签数据和多个有标签数据输入多个复杂网络模型,获得多个输出向量,其中,所述多个复杂网络模型由所述多个复杂网络通过输入所述多个有标签数据训练获得;对所述多个输出向量进行第一融合和归一化处理,获得一个概率向量,所述概率向量包括:人工标注向量和模型标注向量;将所述人工标注向量与所述多个有标签数据进行第二融合计算,获得融合标签向量;将所述融合标签向量和所述模型标注向量进行合并,获得训练集;利用所述训练集对所述简单网络进行训练,获得训练后的简单模型。

可选地,在本申请实施例中,所述从多个复杂网络中的筛选出原始网络,包括:用预设数据对所述多个复杂网络进行训练,获得多个复杂网络模型;根据所述多个复杂网络模型获得原始网络。

可选地,在本申请实施例中,所述用预设数据对所述多个复杂网络进行训练,获得多个复杂网络模型,包括:获得多个复杂网络,复杂网络为不同结构的神经网络或将多样性数据训练后获得的复杂网络;利用多个有标签数据对所述多个复杂网络进行训练,获得多个复杂网络模型。

可选地,在本申请实施例中,所述根据所述多个复杂网络模型获得原始网络,包括:将标准的测试数据集对所述多个复杂网络模型进行准确率测试,并将所述多个复杂网络模型中的准确率最高的复杂网络模型作为原始网络模型;从所述多个复杂网络中获得与所述原始网络模型对应的复杂网络,作为原始网络。

可选地,在本申请实施例中,所述对所述原始网络进行裁剪获得简单网络,包括:减少所述原始网络的网络层的数量;或/和减少所述原始网络的网络层的参数。

可选地,在本申请实施例中,所述将所述人工标注向量与所述多个有标签数据进行第二融合计算,获得融合标签向量,包括:根据所述多个有标签数据进行独热编码计算,获得第一标签向量;将所述人工标注向量作为第二标签向量;将所述第一标签向量与所述第二标签向量进行第二融合计算,获得融合标签向量。

可选地,在本申请实施例中,所述将所述第一标签向量与所述第二标签向量进行第二融合计算,获得融合标签向量,包括:将所述第一标签向量与所述第二标签向量进行第二融合计算,获得t=a×h+b×s;其中,t是所述融合标签向量,a、b分别是第一权重参数和第二权重参数,且a、b满足a+b=1,h是所述第二标签向量,s是所述第一标签向量。

本申请还提供了一种神经网络压缩装置,所述装置包括:简单网络获得模块,用于从多个复杂网络中的筛选出原始网络,并对所述原始网络进行裁剪,获得简单网络;输出向量获得模块,用于将多个无标签数据和多个有标签数据输入多个复杂网络模型,获得多个输出向量,其中,所述多个复杂网络模型由所述多个复杂网络通过输入所述多个有标签数据训练获得;概率向量获得模块,用于对所述多个输出向量进行第一融合和归一化处理,获得一个概率向量,所述概率向量包括:人工标注向量和模型标注向量;标签向量获得模块,用于将所述人工标注向量与所述多个有标签数据进行第二融合计算,获得融合标签向量;训练集获得模块,用于将所述融合标签向量和所述模型标注向量进行合并,获得训练集;简单模型获得模块,用于利用所述训练集对所述简单网络进行训练,获得训练后的简单模型。

本申请还提供了一种电子设备,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如上所述的方法。

本申请还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上所述的方法。

本申请提供一种神经网络压缩方法、装置、电子设备及存储介质,从多个复杂网络中的筛选出原始网络,并对所述原始网络进行裁剪压缩,获得了简单网络。再将多个无标签数据和之前训练多个复杂网络的多个有标签数据进行处理后,获得包括融合标签向量的训练集,将训练集输入简单网络进行训练,获得训练后的简单模型。通过将多个复杂网络进行裁剪压缩后获得简单网络,再对之前训练多个复杂网络的训练数据处理后,然后将处理后的训练数据输入简单网络进行训练,获得压缩后的简单网络模型,不仅对多个复杂网络进行了压缩,而且通过对简单网络训练之前的训练数据进行了处理,从而提高了简单网络的准确率。通过这种方式从而有效地解决了现有技术中在卷积神经网络模型同等精度损失的情况下,获取的压缩比非常小的问题。

为使本申请的上述目的和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

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

图1示出了本申请实施例提供的电子设备结构示意图;

图2示出了本申请实施例提供的神经网络压缩方法流程示意图;

图3示出了本申请实施例提供的神经网络压缩方法步骤s100的流程示意图;

图4示出了本申请实施例提供的神经网络压缩方法步骤s400的流程示意图;

图5示出了本申请实施例提供的神经网络压缩方法的另一种实施方式流程图;

图6示出了本申请实施例提供的神经网络压缩装置结构示意图。

图标:100-电子设备;110-处理器;120-存储器;130-存储介质;200-神经网络压缩装置;210-简单网络获得模块;220-输出向量获得模块;230-概率向量获得模块;240-标签向量获得模块;250-训练集获得模块;260-简单模型获得模块。

具体实施方式

本申请提供一种神经网络压缩方法、装置、电子设备及存储介质,用于解决现有技术中在卷积神经网络模型同等精度损失的情况下,获取的压缩比非常小的问题。其中,应用于电子设备的方法和装置是基于同一创造构思的,由于方法及相应的装置和设备解决问题的原理相似,因此方法及相应的装置和设备的实施可以相互参见,重复之处不再赘述。

以下将对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。

卷积神经网络(convolutionalneuralnetwork,cnn),是一种前馈神经网络,人工神经元可以响应周围单元,可以进行大型图像处理。卷积神经网络包括卷积层和池化层。卷积神经网络包括一维卷积神经网络、二维卷积神经网络以及三维卷积神经网络。一维卷积神经网络常应用于序列类的数据处理;二维卷积神经网络常应用于图像类文本的识别;三维卷积神经网络主要应用于医学图像以及视频类数据识别。

图形处理器(graphicsprocessingunit,gpu),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。

概率向量,任意一个向量u如果它内部的各个元素为非负数,而且总和等于1,则此向量称为概率向量。

正则化(regularization),是指在线性代数理论中,不适定问题通常是由一组线性代数方程定义的,而且这组方程组通常来源于有着很大的条件数的不适定反问题。大条件数意味着舍入误差或其它误差会严重地影响问题的结果。

霍夫曼编码(英语:huffmancoding),又译为哈夫曼编码、赫夫曼编码,是一种用于无损数据压缩的熵编码(权编码)算法。在计算机数据处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。

硬编码和软编码,在计算机科学中,只有硬编码(hardcode),以及非硬编码,有人也成为“软编码”。硬编码和软编码的区别是:软编码可以在运行时确定,修改;而硬编码是不能够改变的。所有的硬编码和软编码的区别都可以有这个意思扩展开。在计算机程序或文本编辑中,硬编码是指将可变变量用一个固定值来代替的方法。用这种方法编译后,如果以后需要更改此变量就非常困难了。大部分程序语言里,可以将一个固定数值定义为一个标记,然后用这个特殊标记来取代变量名称。当标记名称改变时,变量名不变,这样,当重新编译整个程序时,所有变量都不再是固定值,这样就更容易的实现了改变变量的目的。

另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或者暗示相对重要性,也不能理解为指示或者暗示顺序。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参见图1,图1示出了本申请实施例提供的电子设备结构示意图。本申请提供了的一种电子设备100,包括:处理器110和存储器120,存储器120存储有处理器110可执行的机器可读指令,机器可读指令被处理器110执行时执行如下神经网络压缩方法。

在具体的实施过程中,对卷积神经网络(convolutionalneuralnetwork,cnn)的相关计算可以用图形处理器(graphicsprocessingunit,gpu)进行加速,因此,该电子设备还可以包括图形处理器。此外,在使用分布式计算框架时需要使用通信接口,该电子设备还可以包括通讯与网络扩展卡、光纤卡或者多串口通信卡等部件,在此不再赘述。

请参见图1,本申请提供了的一种存储介质130,该存储介质130上存储有计算机程序,该计算机程序被处理器110运行时执行如下神经网络压缩方法。

本领域技术人员可以理解,图1中示出的电子设备的结构并不构成对该设备的限定,本申请实施例提供的设备可以包括比图示更多或者更少的部件,或者不同的部件布置。

请参见图2,图2示出了本申请实施例提供的神经网络压缩方法流程示意图。本申请提供了的一种神经网络压缩方法,方法包括:

步骤s100:从多个复杂网络中的筛选出原始网络,并对原始网络进行裁剪,获得简单网络。

需要说明地是,在本申请实施例中,将未经数据训练的神经网络记为某网络,例如步骤s100中的复杂网络、原始网络和简单网络,而如果该神经网络经过数据训练后,则记为某网络模型,例如步骤s200中的复杂网络模型和步骤s600中的简单模型,在不特别说明的情况下,都依照此约定标记。

其中,对原始网络进行裁剪的方式,例如:减少原始网络的网络层的数量;又例如,减少原始网络的网络层的参数,再例如,减少原始网络的块的数量,这里的块中包括多个网络层。具体来说,例如一个复杂网络中,包括三个卷积层、两个池化层和两个卷积块,两个卷积块中均包括两个卷积层;减少原始网络的网络层的数量后为,一个卷积层、一个池化层和两个卷积块,两个卷积块中均包括一个卷积层;减少原始网络的块的数量后为,一个卷积层、一个池化层和一个卷积块,一个卷积块中均包括一个卷积层。

请参见图3,图3示出了本申请实施例提供的神经网络压缩方法步骤s100的流程示意图。可选地,在本申请实施例中,从多个复杂网络中的筛选出原始网络,包括:

步骤s110:用预设数据对多个复杂网络进行训练,获得多个复杂网络模型。

其中,所述预设数据为带人工标注信息的数据,即为有标签的数据,这些标签是人为的标注的,也就是说,人工打标签的数据。

其中,在本申请实施例中,步骤s110包括:

步骤s111:获得多个复杂网络,复杂网络为不同结构的神经网络或将多样性数据训练后获得的复杂网络。

可以理解地是,这里的复杂网络可以是不同结构的多层次网络模型或采用多样性数据训练网络所得神经网络,具体来说,例如,复杂网络包括卷积神经网络中各种层、inception、block的组合堆叠等等方式构建,其中,inception、block(例如:bottleneck)都是层(layer)按照一些规则组合而成的结构使得网络具有更好的表征能力,再例如,是准备通过预设训练数据集训练该复杂网络获得的神经网络,这里的预设训练数据集具体内容例如包括:标签、有标签的图片、无标签的图片、有标签的视频和无标签的视频等等。此外,通过采用多样性数据训练网络模型可以提高模型的准确率。

步骤s112:利用多个有标签数据对多个复杂网络进行训练,获得多个复杂网络模型。

需要说明地是,构造多个复杂网络的训练数据集,采用卷积神经网络模型的训练方式训练多个所述复杂网络,原始网络的筛选是通过在标准的测试集上测试模型的指标包括准确率等指标来作为评判指标的,准确率达到预设指标而且效果达到最优的复杂网络进行存储,以便后面使用。举例来说,第一阶段,向前传播阶段:a)从训练数据集中取一个样本,将样本输入网络;b)计算相应的实际输出,在此阶段,信息从输入层经过逐级的变换,传送到输出层。在此过程中,网络执行的是计算(实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果);第二阶段,向后传播阶段:c)计算实际输出与相应的理想输出的差值称之为损失(loss),可以根据不同的任务需求设计不同的损失(loss);d)按极小化误差的方法反向传播损失(loss),调整权重矩阵。

在具体实施过程中,在模型的训练的过程中可以加入一定的正则化处理,提升模型在不同环境的下的推理能力。

步骤s120:根据多个复杂网络模型获得原始网络。

其中,在本申请实施例中,步骤s120包括:

步骤s121:将标准的测试数据集对多个复杂网络模型进行准确率测试,并将多个复杂网络模型中的准确率最高的复杂网络模型作为原始网络模型。

在具体实施过程中,复杂网络的设计可以根据数据的分类任务的特点来做相应的调整,在设计的过程中应该模型精度为导向,混合多种结果不同结构,期望可以得到更好的表达性能。将多个复杂网络模型中的准确率最高的复杂网络模型作为原始网络模型,可以使得对应的原始网络经过裁剪压缩获得的简单网络,这里简单网络经过特定数据训练后相比未经筛选的情况下可以极大地提高准确率。

步骤s122:从多个复杂网络中获得与原始网络模型对应的复杂网络,作为原始网络。

在具体实施过程中,使用多个复杂网络模型中的准确率最高的复杂网络模型作为原始网络模型,再对原始网络模型对应的原始网络进行裁剪压缩后的简单网络进行训练,如此提高了压缩后的简单网络的准确率。

步骤s200:将多个无标签数据和多个有标签数据输入多个复杂网络模型,获得多个输出向量,其中,多个复杂网络模型由多个复杂网络通过输入多个有标签数据训练获得。

其中,可以理解的是,数据的形式多种多样,例如,数据包括标签和图片两种,其标签是该图片的分类结果,具体来说,一张图片是猫的画像,那么其对应的标签则为猫或者猫的标记,猫的标记例如,是猫则为1,另外如果有其他类别,则一次编号2,3,4…。

在具体的实施过程中,将多个无标签数据和多个有标签数据输入多个复杂网络模型后,获得的多个输出向量,其中,多个有标签数据是hardtarget(见下面的解释),是经过人工标注后的标签,例如[1,0,…0],0代表不是某种分类,1表示是某种分类,多个无标签数据也是hardtarget(见下面的解释),是经过人工赋值后的标签,例如[0,0,…0],表示该图片没有识别目标的背景图片。将它们输入多个复杂网络模型后,获得多个输出向量,例如[0.3125,0.4375,…,0.1875]是softtarget(见下面的解释);参数表示在实际使用中,相对于采用hardtarget(见下面的解释)太过于苛刻,不能较好地描述目标之间的存在相似性的事实,因此,多个无标签数据和多个有标签数据输入多个复杂网络模型后,获得的多个输出向量,将多个输出向量处理后作为训练数据能够较好地描述目标之间的存在相似性。

其中,softtarget和hardtarget,例如数据集是用来识别数字的,对于用来表示数字3的图片,它的标签值就是[0,0,1,0,0...0],从概率的角度上理解那就是说“图片显示的数字是3的概率是100%,是其他数字的概率是0%”,这就是所谓的hardtarget。而事实上对于学习算法而言,概率可能不是那么绝对,同样是这张3的图片,学习算法返回的可能就是[0.005,0.01,0.9,...,0.005]这样,代表“图片是1的概率是0.5%,图片是2的概率是1%,图片是3的概率是90%...”,这种非100%的结果就是所谓的softtarget。

步骤s300:对多个输出向量进行第一融合和归一化处理,获得一个概率向量,概率向量包括:人工标注向量和模型标注向量。

其中,第一融合可以为均值融合,多个输出向量例如:

第一个输出向量为[0.01,0.5,0.2,0.09,0.2],

第二个输出向量为[0.09,0.3,0.2,0.01,0.4],

均值融合后即为[0.05,0.4,0.2,0.05,0.3]。

当然,这里的第一融合也可以为加权融合,举上面具体的例子来说,例如第一个输出向量的权重为0.1,第二个输出向量的权重为0.9,那么经过加权融合后[0.1*0.01+0.9*0.09,0.1*0.5+0.9*0.3,0.1*0.2+0.9*0.2,0.1*0.09+0.9*0.01,0.1*0.2+0.9*0.4],即为[0.082,0.32,0.2,0.018,0.38]。

其中,归一化处理,有两种形式,一种是把数变为(0,1)之间的小数,一种是把有量纲表达式变为无量纲表达式。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。例如,[2.5,3.5,0.5,1.5]归一化处理过程:2.5+3.5+0.5+1.5=8,2.5/8=0.3125,3.5/8=0.4375,0.5/8=0.0625,1.5/8=0.1875,最终解为[0.3125,0.4375,0.0625,0.1875]。总之,就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。

步骤s400:将人工标注向量与多个有标签数据进行第二融合计算,获得融合标签向量。

请参见图4,图4示出了本申请实施例提供的神经网络压缩方法步骤s400的流程示意图。可选地,在本申请实施例中,步骤s400包括:

步骤s410:根据多个有标签数据进行独热编码计算,获得第一标签向量。

其中,独热编码(one-hot)是指使用多位状态寄存器来对多个状态进行编码,每个状态都有它独立的。

步骤s420:将人工标注向量作为第二标签向量。

步骤s430:将第一标签向量与第二标签向量进行第二融合计算,获得融合标签向量。

在具体的实施过程中,标签融合向量采用如下方式进行加权融合:

target=a*hard_target+b*soft_target

在具体是实施方式中,式中的a、b满足条件a+b=1,hard_target为维度为k的one-hot即为独热编码的标签向量,即第一标签向量,soft_target为复杂模型生成的概率向量,即第二标签向量,target表示训练数据的标签用于训练精简模型。例如,参数表示在实际使用中,相对于采用硬编码(hardcoding)太过于苛刻,不能较好地描述目标之间的存在相似性的事实,而采用软编码(softcoding)的方式来对标签进行编码是更为合理的,因此标签融合向量采用加权融合的方式进行计算能够更好地描述目标之间的存在相似性。

可选地,在本申请实施例中,将第一标签向量与第二标签向量进行第二融合计算,获得融合标签向量,包括:

将所述第一标签向量与所述第二标签向量进行第二融合计算,获得t=a×h+b×s;其中,t是所述融合标签向量,a、b分别是第一权重参数和第二权重参数,且a、b满足a+b=1,h是所述第二标签向量,s是所述第一标签向量。

在具体的实施方式中,可以理解地是,这里的第二融合是指上面步骤s300中接收说明的加权融合,这里不再赘述,这里的参数a例如为0.1,所述参数b例如为0.9,参数a,b具体值是通过大量实验所得。需要说明地是,以融合标签向量作为监督信号,训练精简的网络,其中可能需要对一些训练的超参数进行细致的调节和控制。比如学习率、训练次数等,训练该模型直至收敛。此时得到模型即为融合了复杂模型表征的能力的小模型,因此,使用融合标签向量生成的训练数据来训练模型,该模型可以兼顾复杂模型的表征能力,同时体积更小速度更快。

步骤s500:将融合标签向量和模型标注向量进行合并,获得训练集。

其中,将融合标签向量和模型标注向量进行合并,获得训练集,包括:

合并操作,例如,融合标签向量[0.28,0.32,0.64]和模型标注向量[0.18,0.12,0.14]合并为合并集合[0.28,0.32,0.64,0.18,0.12,0.14];

对应操作,例如上述的合并集合[0.28,0.32,0.64,0.18,0.12,0.14]分别与第一图片、第二图片、第三图片、第四图片、第五图片和第六图片一一对应起来。当然也可以与第一视频、第二视频、第三视频、第四视频、第五视频和第六视频一一对应起来。

经过了合并操作和对应操作后,即可获得训练集。

步骤s600:利用训练集对简单网络进行训练,获得训练后的简单模型。

在具体的实施过程中,复杂网络的设计可以根据数据的分类任务的特点来做相应的调整。复杂网络模型在设计的过程中应该模型精度为导向,混合多种结果不同结构,以期得到更好的表达性能。在模型的训练的过程中可以加入一定的正则化处理,提升模型在不同环境的下的推理能力。此外,通过采用多样性数据训练网络模型可以提高模型的准确率。

本申请实施例的提供一种神经网络压缩方法,通过将多个复杂网络进行裁剪压缩后获得简单网络,再对之前训练多个复杂网络的训练数据处理后,然后将处理后的训练数据输入简单网络进行训练,获得压缩后的简单网络模型,不仅对多个复杂网络进行了压缩,而且通过对简单网络训练之前的训练数据进行了处理,从而提高了简单网络的准确率。

为了便于理解,下面介绍本申请实施例提供的神经网络压缩方法的另一种实施方式,本申请实施例提供的神经网络压缩方法的另一种实施方式如下:

请参见图5,图5示出了本申请实施例提供的神经网络压缩方法的另一种实施方式流程图,应用于将复杂的原始模型压缩为精简模型,其包括:

步骤s1,根据目标需求相应地设计多个复杂网络,所述复杂网络为不同结构的网络模型或采用多样性数据训练网络所得网络模型。

具体地,复杂网络的设计可以根据数据的分类任务的特点来做相应的调整。复杂网络模型在设计的过程中应该模型精度为导向,混合多种结果不同结构,以期得到更好的表达性能。在模型的训练的过程中可以加入一定的正则化处理,提升模型在不同环境的下的推理能力。此外,通过采用多样性数据训练网络模型可以提高模型的准确率。

步骤s2,构造所述复杂网络的训练数据集,采用卷积神经网络模型的训练方式训练多个所述复杂网络,模型的筛选是通过在标准的测试集上测试模型准确率等其他指标来作为评判指标。

具体地,第一阶段,向前传播阶段:a)从训练数据集中取一个样本,将样本输入网络;b)计算相应的实际输出,在此阶段,信息从输入层经过逐级的变换,传送到输出层。在此过程中,网络执行的是计算(实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果);第二阶段,向后传播阶段:c)计算实际输出与相应的理想输出的差;d)按极小化误差的方法反向传播调整权矩阵。

步骤s3,基于多个复杂网络中的简化原始模型的网络层得到简单网络模型。

具体地,根据多个复杂网络(n1,n2,…,nt)进行设计,主要参照大量简化原始模型的网络层和减少网络层中参数可得到简单网络模型,如,简单网络模型可表示为n0。

步骤s4,构造所述简单网络模型的训练数据集,所述训练数据集中包括有标签数据与无标签数据的标签向量,将所述训练数据集中的标签向量输入到多个所述复杂网络模型得到多个维度为k的输出向量,其中,k为分类类别数。

具体地,所述标签向量有人工标记的标注的按其标签值取值,无标签时其(hard_target为)的标签值取值为零。采用大规模数据,直接使用无标签数据的标签向量进行训练,可极大的缩小采集成本,同时,避免了对标签数据的过度依赖,解决了处理训练数据不均衡的问题。

步骤s5,采用均值融合与归一化的方式将多个输出向量融合成维度为k的概率向量。

具体地,概率向量每一维位于(0,1),所述维度相加之和为1,其用soft_target表示对输入标签向量所给出的分类结果的概率分布。归一化的输出可以去除度量的单位量纲,可以使得度量不会受到单一维度的影响。

步骤s6,融合所述概率向量的标签值与训练数据集内标签向量的标签值生成压缩复杂的卷积神经网络原始模型的标签融合值。

具体地,所述标签融合值采用如下方式进行加权融合:

target=a*hard_target+b*soft_target

其中,式中a+b=1,hard_target为维度为k的one-hot标签向量,soft_target为复杂模型生成的概率向量,target表示训练数据的标签用于训练精简模型。

步骤s7,按照所述标签融合值压缩所述卷积神经网络原始模型得到精简模型。

具体地,以融合标签值作为监督信号,训练精简的网络,其中可能需要对一些训练的超参数进行细致的调节和控制。比如学习率、训练次数等。训练模型直至收敛。此时得到模型即为融合了复杂模型表征的能力的小模型。该模型可以兼顾复杂模型的表征能力,同时体积更小速度更快。

在本实施例中,本申请的压缩方式不仅可应用于任何卷积神经网络模型,具有较佳的通用度与推广性;在压缩卷积神经网络模型时不损失该模型的精度,经压缩处理的卷积神经网络模型不但尺寸变小而且提高了准确率。同时,可采用无标签数据对卷积神经网络模型进行训练,避免了对标签数据的过度依赖,解决了处理训练数据不均衡的问题。

请参见图6,图6示出了本申请实施例提供的神经网络压缩装置结构示意图。本申请提供了的一种神经网络压缩装置200,装置包括:

简单网络获得模块210,用于从多个复杂网络中的筛选出原始网络,并对原始网络进行裁剪,获得简单网络。

输出向量获得模块220,用于将多个无标签数据和多个有标签数据输入多个复杂网络模型,获得多个输出向量,其中,多个复杂网络模型由多个复杂网络通过输入多个有标签数据训练获得。

概率向量获得模块230,用于对多个输出向量进行第一融合和归一化处理,获得一个概率向量,概率向量包括:人工标注向量和模型标注向量。

标签向量获得模块240,用于将人工标注向量与多个有标签数据进行第二融合计算,获得融合标签向量。

训练集获得模块250,用于将融合标签向量和模型标注向量进行合并,获得训练集。

简单模型获得模块260,用于利用训练集对简单网络进行训练,获得训练后的简单模型。

本申请提供一种神经网络压缩方法、装置、电子设备及存储介质,从多个复杂网络中的筛选出原始网络,并对所述原始网络进行裁剪压缩,获得了简单网络。再将多个无标签数据和之前训练多个复杂网络的多个有标签数据进行处理后,获得包括融合标签向量的训练集,将训练集输入简单网络进行训练,获得训练后的简单模型。通过将多个复杂网络进行裁剪压缩后获得简单网络,再对之前训练多个复杂网络的训练数据处理后,然后将处理后的训练数据输入简单网络进行训练,获得压缩后的简单网络模型,不仅对多个复杂网络进行了压缩,而且通过对简单网络训练之前的训练数据进行了处理,从而提高了简单网络的准确率。通过这种方式从而有效地解决了现有技术中在卷积神经网络模型同等精度损失的情况下,获取的压缩比非常小的问题。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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