一种神经网络模型的优化方法及系统与流程

文档序号:16137003发布日期:2018-12-01 01:07阅读:183来源:国知局

本发明涉及神经网络技术领域,尤其涉及一种神经网络模型的优化方法及系统。

背景技术

随着人工智能的发展,越来越多的软件产品采用神经网络模型作为数据处理的核心。所谓神经网络模型,是指由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,其反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。神经网络模型具有大规模并行、分布式存储和处理、自组织、自适应和自学能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。近年来,深度神经网络模型由于通过组合底层特征形成高层特征的工作原理,使得其受环境变化的影响较小,因此被广泛应用在计算机视觉领域尤其是人脸识别和图像分类上。

然而,现有的深度学习网络一般都有几百万甚至上亿个参数,计算量非常巨大,因此限制了其应用在计算资源受限的设备上,特别是前端的嵌入式产品上的应用。因此,若想要将深度学习网络模型进行广泛应用,必须要对其进行优化。



技术实现要素:

根据现有技术中存在的上述问题,现提供一种神经网络模型的优化方法及系统的技术方案,旨在于现有的预训练网络模型上直接剪枝优化,通过目标精度最优化,每层选择不同的阈值,将较小的权值置0,从而自适应地实现最优的剪枝方法,平衡了压缩和精度的关系,达到优化网络模型的目的。

上述技术方案具体包括:

一种神经网络模型的优化方法,其中,预先训练形成一预训练模型,所述预训练模型中包括多个依次连接的卷积层和全连接层,并针对每个所述卷积层和所述全连接层分别设置一阈值;

对所述预训练模型进行优化的过程具体包括:

步骤s1,加载所述预训练模型,分析并获取所述预训练模型中各个所述卷积层和所述全连接层的权值;

步骤s2,针对每个所述卷积层或所述全连接层,保留大于等于所述阈值的所有所述权值,以作为待计算权值;

步骤s3,将所有所述待计算权值整合形成一权值文件,并依据同一个测试数据集进行前向计算,以得到所述权值文件的准确度和计算量;

步骤s4,针对每个所述卷积层和所述全连接层分别更改所述阈值,随后返回所述步骤s2;

重复多次所述步骤s2至所述步骤s4,以获取多个所述权值文件的所述准确度和所述计算量并进行比对,以找到最优的所述权值文件,并依据最优的所述权值文件对所述预训练模型进行优化后输出。

优选的,该优化方法,其中,所述步骤s1中,通过深度学习框架工具对所述预训练模型进行加载。

优选的,该优化方法,其中,所述步骤s1中,获取的各个所述卷积层和所述全连接层的权值分布在0值附近。

优选的,该优化方法,其中,所述步骤s2中,小于所述阈值的所有所述权值均被设置为n/a,并被剪枝除去。

优选的,该优化方法,其中,所述步骤s3中,所述计算量为所述权值文件的平均前向计算的时间量。

一种神经网络模型的优化系统,其中,预先训练形成一预训练模型,所述预训练模型中包括多个依次连接的卷积层和全连接层,并针对每个所述卷积层和所述全连接层分别设置一阈值;

所述优化系统具体包括:

分析单元,用于加载所述预训练模型并进行分析,以获取所述预训练模型中各个所述卷积层和所述全连接层的权值;

剪枝单元,连接所述分析单元,用于针对每个所述卷积层或所述全连接层,保留大于等于所述阈值的所有所述权值,以作为待计算权值;

整合单元,连接所述剪枝单元,用于将所有所述待计算权值整合形成一权值文件;

测试单元,连接所述整合单元,用于依据同一个测试数据集,对所有所述权值文件进行前向计算,以得到所述权值文件的准确度和计算量并输出;

变更单元,分别连接所述测试单元和所述分析单元,用于在所述测试单元对一个所述权值文件进行前向计算完毕后,变更每个所述卷积层和所述全连接层的所述阈值;

比对单元,连接所述测试单元,用于将不同的所述权值文件进行前向计算得到的所述准确度和所述计算量进行比对,以找到最优的所述权值文件,并依据最优的所述权值文件对所述预训练模型进行优化后输出。

优选的,该优化系统,其中,所述分析单元获取的各个所述卷积层和所述全连接层的权值分布在0值附近。

优选的,该优化系统,其中,所述剪枝单元将小于所述阈值的所有所述权值设置为n/a,并剪枝除去。

优选的,该优化系统,其中,所述计算量为所述权值文件的平均前向计算的时间量。

上述技术方案的有益效果是:

1)提供一种神经网络模型的优化方法,能够在现有的预训练网络模型上直接剪枝优化,通过目标精度最优化,每层选择不同的阈值,将较小的权值置0,从而自适应地实现最优的剪枝方法,平衡了压缩和精度的关系,达到优化网络模型的目的;

2)提供一种神经网络模型的优化系统,能够实现上述优化方法。

附图说明

图1是本发明的较佳的实施例中,一种神经网络模型的优化方法的流程示意图;

图2是权值在0值附近分布的示意图;

图3是本发明的较佳的实施例中,一种神经网络的优化系统的结构示意图。

具体实施方式

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

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

现有技术中往往通过权值剪枝(pruning)和量化(quantization)来对网络模型进行优化。现有的权值剪枝,其原理为:从卷积层中的参数分布了解到大部分权值集中在0值附近,而这些权值对于网络的贡献较小。因此可以通过剪枝的方式将处于0值附近的较小的权值置为0,使这些权值不被激活,则能够着重训练剩下的非零权值,最终在保证网络精度不变的情况下达到压缩尺寸的目的。现有技术中通常采用剪枝的方式对网络模型进行优化,以得到减少网络复杂度、稀疏网络、提升网络泛化能力等目的。

现有技术中也可以通过权值量化的方式对网络模型进行优化,其原理是基于权值聚类,将连续分布的权值离散化,从而达到减小需要存储的权值数量的目的。

上述方法虽然对网络模型均起到了一定的优化效果,但是这些优化过程都是在模型的训练阶段进行的,针对已经训练好的网络模型均无法适用。对于已经训练好的网络模型,只能通过修改模型定义文件,重新微调(finetune)网络的方式来获得优化后的网络模型。然而在实际应用中,如果缺乏一定的徐连数据或者已经训练好的网络模型是无法重新训练的网络,那就无法对网络模型进行进一步优化。

鉴于上文中提到的问题,现提供一种神经网络模型的优化方法。首先预先训练形成一预训练模型,预训练模型中包括多个依次连接的卷积层和全连接层,并针对每个卷积层和全连接层分别设置一阈值。上述预训练模型是由预先准备的训练数据,经过现有技术中的神经网络训练方式训练得到的神经网络模型,该神经网络模型中的卷积层和全连接层及其连接关系均与现有技术中相同,在此不再赘述。

则上述优化方法具体如图1中所示,包括:

步骤s1,加载预训练模型,分析并获取预训练模型中各个卷积层和全连接层的权值;

步骤s2,针对每个卷积层或全连接层,保留大于等于阈值的所有权值,以作为待计算权值;

步骤s3,将所有待计算权值整合形成一权值文件,并依据同一个测试数据集进行前向计算,以得到权值文件的准确度和计算量;

步骤s4,针对每个卷积层和全连接层分别更改阈值,随后返回步骤s2;

重复多次步骤s2至步骤s4,以获取多个权值文件的准确度和计算量并进行比对,以找到最优的权值文件,并依据最优的权值文件对预训练模型进行优化后输出。

具体地,本实施例中,首先加载已经训练完成的预训练模型,并对该预训练模型进行分析,分析的目的是获取预训练模型中各个卷积层和全连接层的权值。

本实施例中,预先对预训练层的每层卷积层和全连接层分别设置不同的阈值。则在上述步骤s2之后,针对每层卷积层以及每层全连接层,分别将该层的所有权值与该层所对应的阈值进行比较,并将小于阈值的权值进行剪除,即对每层都进行剪枝处理,剩下的权值就作为待计算权值。

随后,上述步骤s3,将关联于本次阈值设置的所有待计算权值整合形成一权值文件,并依据一预先准备好的测试数据集对该权值文件进行前向计算。具体地,所谓对权值文件进行前向计算,是指依据权值文件中的各待计算权值保存为对应的模型(该模型即为其中各卷积层和全连接层保留权值文件中的待计算权值时的预训练模型)进行前向计算,并根据前向计算的结果得到该权值文件下的准确度的计算量,以供后续进行比对使用。

本实施例中,在完成一次前向计算后,对上述各个卷积层和全连接层的阈值都进行更改,并再执行一次步骤s2-步骤s4,以得到另一个权值文件的准确度和计算量。上述过程重复进行,从而得到若干个权值文件的准确度和计算量,随后将若干个权值文件进行比对,从而得到其中准确度和计算量最优的权值文件,其所对应的网络模型就是经过优化的预训练模型。

具体地,所谓准确度,是指形成的多个权值文件在网络中进行前向计算并在指定的测试集上得到的预测的准确度,该准确度越高则表明对应的权值文件效果越好。所谓计算量最优,是指某个权值文件在网络中前向计算时所耗费的计算时间,该计算量越少则表明对应的权值文件效果越好。则上述比对过程中,目的是要找到准确度高且计算量少的权值文件。

比对的方式可以采用直接排序的方式进行,例如以准确度由高至低排序形成第一序列,并以计算量由少至多排序形成第二序列,获取每个权值文件在第一序列的第一顺序以及在第二序列的第二顺序,并将第一顺序和第二顺序相加得到该权值文件的综合顺序。选取综合顺序最小的作为最优的权值文件。

比对的方式也可以采用加权排序的方式进行,例如为准确度赋予一个第一加权值,为计算量赋予一个第二加权值,并针对每个权值文件通过加权计算的方式计算得到准确度和计算量的综合加权值,随后根据综合加权值来选择最优的权值文件。

比对的方式还可以采用其他合适的方式进行,在此不再赘述。

本发明的较佳的实施例中,上述步骤s1中,通过深度学习框架工具对预训练模型进行加载。进一步地,可以采用caffe等深度学习框架工具对预训练模型(model)进行加载,并采用上述深度学习框架工具分析并统计各卷积层和全连接层中的权值分布情况,以获取权值。

本发明的较佳的实施例中,获取的各个所述卷积层和所述全连接层的权值分布如图2中所示,其权值分布主要处于0值附近,即权值分布以0值为原点展开。则针对每层卷积层和全连接层而言,将小于该层所对应的阈值的权值置为n/a,并且保留大于等于等于该阈值的权值,以作为待计算权值。上述过程即为对各个卷积层和全连接层进行权值的剪枝处理,经过剪枝后,各层中处于0值附近的数值较小的权值被置为n/a,只保留剩余的权值。

本发明的较佳的实施例中,上述计算量为权值文件的平均前向计算的时间量。即上述比对过程中,参与比对的权值文件前向计算的结果中包括前向计算的准确度,以及平均前向计算的时间量。

则本发明的较佳的实施例中,通过对多个权值文件进行前向计算后结果的比对,找到最优的权值文件(也即多个权值的组合),并将该权值文件所对应的模型作为经过优化的预训练模型。

本发明的较佳的实施例中,上述所有权值文件的前向计算均在同一个测试数据集上进行,以保证测试环境的一致性。

下文中以一个示例说明上述优化过程:

1)预先训练形成一个预训练模型,该预训练模型即本次优化的对象;

2)通过caffee等深度学习框架工具加载预训练模型,并且分析和统计各卷积层和全连接层的权值分布情况,得到0值附近的权值分布图(如图2中所示)。假设当前的预训练模型中有m个卷积层,n个全连接层,则根据上述分析和统计可以得到m+n个权值分布状态图g1,g2,g3,...gm+n。

3)针对每个卷积层和全连接层,预先设定一个相应的阈值,则g1所对应的阈值为f1,g1所对应的阈值为f2,以此类推,形成一个具有m+n个阈值的序列{f1,f2,f3,...fm+n},将第一次设定阈值时所形成的阈值列表作为列表s1。

4)针对阈值序列s1,对各个卷积层和全连接层的权值进行剪枝,小于对应阈值的权值被置为n/a,保留剩余的权值并作为待计算权值,将被保留的剩余的权值作为权值文件,并保存为与阈值列表s1所对应的模型model1。

5)对model1在预设的一个测试数据集d上进行前向计算,得到准确度a1和平均前向计算的时间量t1;

6)改变阈值,改变的次数可以为多次,具体次数以实际测试需要为准。每次改变形成一个新的阈值列表si,随后针对阈值列表si对各层进行剪枝处理,得到模型modeli,随后进行前向计算得到准确度ai和平均前向计算的时间量ti。

7)上述过程重复多次得到若干个{modeli}以及对应的{ai}和{ti},通过对比不同的时间量和准确度就可以得到最优的模型。最终得到的最优的模型就是经过优化后的预训练模型。

本发明的较佳的实施例中,基于上文中所述的神经网络模型的优化方法,现提供一种神经网络模型的优化系统,该优化系统中,同样预先训练形成一预训练模型,预训练模型中包括多个依次连接的卷积层和全连接层,并针对每个卷积层和全连接层分别设置一阈值;

上述优化系统具体如图3中所示,包括:

分析单元1,用于加载预训练模型并进行分析,以获取预训练模型中各个卷积层和全连接层的权值;

剪枝单元2,连接分析单元1,用于针对每个卷积层或全连接层,保留大于等于阈值的所有权值,以作为待计算权值;

整合单元3,连接剪枝单元2,用于将所有待计算权值整合形成一权值文件;

测试单元4,连接整合单元3,用于依据同一个测试数据集,对所有权值文件进行前向计算,以得到权值文件的准确度和计算量并输出;

变更单元5,分别连接测试单元4和分析单元1,用于在测试单元对一个权值文件进行前向计算完毕后,变更每个卷积层和全连接层的阈值;

比对单元6,连接测试单元4,用于将不同的权值文件进行前向计算得到的准确度和计算量进行比对,以找到最优的权值文件,并依据最优的权值文件对预训练模型进行优化后输出。

本发明的较佳的实施例中,上述分析单元1获取的各个卷积层和全连接层的权值分布在0值附近。

本发明的较佳的实施例中,上述剪枝单元2将小于阈值的所有权值设置为n/a,并剪枝除去。

本发明的较佳的实施例中,计算量为权值文件的平均前向计算的时间量。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

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