一种VGG网络的训练方法及装置与流程

文档序号:12964267阅读:3369来源:国知局
一种VGG网络的训练方法及装置与流程

本发明涉及vgg网络技术领域,更具体地说,涉及一种vgg网络的训练方法及装置。



背景技术:

vgg网络是对alexnet经典cnn模型的改进,现在也已经是经典的cnn模型,这个模型成为了近些年人们研究的热点。

vgg网络的结构用的都是特别小的3x3的卷积模版(stride:1,padding:1)以及5个2x2的池化层(stride:2),并将卷积层的深度提升到了16-19层。现有的vgg网络虽然在训练精度上效果较好,但是它的参数量非常庞大,占用内存过多,无法移植到移动设备内。

综上所述,现有技术中的vgg网络存在由于参数量非常庞大导致占用内存过多的问题。



技术实现要素:

本发明的目的是提供一种vgg网络的训练方法及装置,以解决现有技术中的vgg网络存在的由于参数量非常庞大导致占用内存过多的问题。

为了实现上述目的,本发明提供如下技术方案:

一种vgg网络的训练方法,包括:

生成包含有n个全连接层的vgg网络模型;

对所述vgg网络模型进行训练,并在每步训练后将每个所述全连接层的权重矩阵中最接近于零的元素置零,直至每个所述全连接层中为零的元素在该全连接层的全部元素中所占比例达到预设值为止。

优选的,生成包含有n个全连接层的vgg网络模型,包括:

生成包含有n个全连接层及m个卷积层的vgg网络模型,每个所述卷积层中均包含激励函数relu且经过降采样处理。

优选的,对所述vgg网络模型进行训练,包括:

采取学习速率自适应的方法对所述vgg网络模型进行训练。

优选的,在每步训练后将每个所述全连接层的权重矩阵中最接近于零的元素置零,包括:

在每步训练后将每个所述全连接层的权重矩阵转化为与每个所述全连接层对应的一维数组;

对每个所述一维数组中元素的绝对值进行降序排列,并将每个所述一维数组中排在最后的不为零的元素置零。

一种vgg网络的训练装置,包括:

生成模块,用于:生成包含有n个全连接层的vgg网络模型;

训练模块,用于:对所述vgg网络模型进行训练,并在每步训练后将每个所述全连接层的权重矩阵中最接近于零的元素置零,直至每个所述全连接层中为零的元素在该全连接层的全部元素中所占比例达到预设值为止。

优选的,所述生成模块包括:

生成单元,用于:生成包含有n个全连接层及m个卷积层的vgg网络模型,每个所述卷积层中均包含激励函数relu且经过降采样处理。

优选的,所述训练模块包括:

训练单元,用于:采取学习速率自适应的方法对所述vgg网络模型进行训练。

优选的,所述训练模块包括:

置零单元,用于:在每步训练后将每个所述全连接层的权重矩阵转化为与每个所述全连接层对应的一维数组;对每个所述一维数组中元素的绝对值进行降序排列,并将每个所述一维数组中排在最后的不为零的元素置零。

本发明提供了一种vgg网络的训练方法及装置,其中该方法包括:生成包含有n个全连接层的vgg网络模型;对所述vgg网络模型进行训练,并在每步训练后将每个所述全连接层的权重矩阵中最接近于零的元素置零,直至每个所述全连接层中为零的元素在该全连接层的全部元素中所占比例达到预设值为止。本申请公开的上述技术方案中,在对vgg网络模型的每步训练之后,则将每个全连接层中最接近于零的权重矩阵元素置零,直至每个全连接层中为零的权重矩阵元素在该全连接层中全部权重矩阵元素中所占比例达到预设值为止,从而实现对全连接层参数的逐步精简,每次精简只丢失表现最弱的那个权重元素,从而不仅能够有效的防止重要权重的丢失,有效防止精度下降,还可以使得vgg网络模型更加精简,使得训练得到的vgg网络模型所占内存较少,进而能够移植到移动设备中。

附图说明

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

图1为本发明实施例提供的一种vgg网络的训练方法的流程图;

图2为本发明实施例提供的一种vgg网络的训练方法中vgg网络模型的示例图;

图3为本发明实施例提供的一种vgg网络的训练装置的结构示意图。

具体实施方式

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

请参阅图1,其示出了本发明实施例提供的一种vgg网络的训练方法的流程图,可以包括:

s11:生成包含有n个全连接层的vgg网络模型。

需要说明的是,本申请中生成的vgg网络对应的vgg网络模型可以是套用现有的vggnet的生成模型,也可以是根据实际需要设计的,均在本发明的保护范围之内。其中n可以根据实际需要进行设定,如可以是5。而在vgg网络对应的vgg网络模型中大部分的参数一般均来自于全连接层,因此本申请用于实现对全连接层的参数的缩减。

s12:对vgg网络模型进行训练,并在每步训练后将每个全连接层的权重矩阵中最接近于零的元素置零,直至每个全连接层中为零的元素在该全连接层的全部元素中所占比例达到预设值为止。

由于对于vgg网络模型的训练为迭代训练,因此在每次训练完成后均将每个全连接层的权重矩阵中最接近于零的元素置零,并且每个置零之后都可以判断每个全连接层中为零的元素数量与该全连接层中全部元素数量的比值(每个全连接层中为零的元素在该全连接层的全部元素中所占比例)是否达到预先根据实际需要设定的预设值,如果均达到,则在后续对vgg网络模型的每步训练后则不再实现上述置零的步骤,否则,则在后续对vgg网络模型的训练后继续实现上述置零的步骤,从而实现全连接层参数的精简。其中预设值可以根据实际需要进行确定,如可以为25%。

本申请公开的上述技术方案中,在对vgg网络模型的每步训练之后,则将每个全连接层中最接近于零的权重矩阵元素置零,直至每个全连接层中为零的权重矩阵元素在该全连接层中全部权重矩阵元素中所占比例达到预设值为止,从而实现对全连接层参数的逐步精简,每次精简只丢失表现最弱的那个权重元素,从而不仅能够有效的防止重要权重的丢失,有效防止精度下降,还可以使得vgg网络模型更加精简,使得训练得到的vgg网络模型所占内存较少,进而能够移植到移动设备中。

本发明实施例提供的一种vgg网络的训练方法,生成包含有n个全连接层的vgg网络模型,可以包括:

生成包含有n个全连接层及m个卷积层的vgg网络模型,每个卷积层中均包含激励函数relu且经过降采样处理。

需要说明的是,m和n的具体取值均可以根据实际需要进行设定,以m为5、n为3为例进行说明,对应的vgg网络模型的示例图如图2所示,其中每一个卷积层中包含了激励函数relu但不使用局部响应标准化(lrn),然后还可以对卷积层经过降采样处理、即对经过卷积层得到的矩阵进行降采样处理,具体来说,可以在卷积层后面设置降采样模块,用于对经过卷积层得到的矩阵降采样处理(实现降采样处理的方式可以根据实际需要进行确定,本申请中可以采用maxpooling实现,以达到降低数据量的目的),由图中可以看出,整个vgg网络绝大部分的参数来自于全连接层,其中以第1、2个全连接层最为明显,所以,本申请中对全连接层进行参数的缩减,从而达到vgg网络模型精简的目的。

本发明实施例提供的一种vgg网络的训练方法,对vgg网络模型进行训练,包括:

采取学习速率自适应的方法对vgg网络模型进行训练。

需要说明的是,采取学习速率自适应的方法对vgg网络模型进行训练的实现原理与现有技术中采用学习速率自适应的方法对其他模型进行训练的实现原理基本相同,简单来说可以包括:在开始训练vgg网络模型时,为了使训练速度加快,可以采取学习速率自适应的方法(learningrateadaptation),首先定义本地时变学习率(以下简称学习率)用于vgg网络模型中每个权重的更新,权重更新完成后改变学习率用于权重的更新,以此类推。并其中,在每次迭代的最后,使用预先采用现有技术中对应技术方案的实现原理设定的误差函数衡量vgg网络模型的错误率,如果该错误率和上轮迭代相比减小了,则可以以预先设定的一定步长增大学习率继续实现下一轮的迭代;如果该错误率和上轮迭代相比增大了,则可以将学习率降至预先根据实际需要设定的值(如最先设定的学习率的50%等),直至vgg网络模型的训练进行到如20%等根据实际需要设定的值或者vgg网络模型的错误率不大于预先设定的标准值时,则vgg模型已具有初步的参数结构,并在之后的每次迭代最后按照本申请公开的上述技术方案实现参数的精简,也即本申请中可以在vgg网络模型训练达到上述条件后再实现参数精简的相关步骤,从而保证vgg网络模型的顺利形成的同时实现参数的精简。

本发明实施例提供的一种vgg网络的训练方法,在每步训练后将每个全连接层的权重矩阵中最接近于零的元素置零,可以包括:

在每步训练后将每个全连接层的权重矩阵转化为与每个全连接层对应的一维数组;

对每个一维数组中元素的绝对值进行降序排列,并将每个一维数组中排在最后的不为零的元素置零。

针对一个全连接层进行上述置零步骤的说明:将该全连接层中的权重矩阵取出,并将该权重矩阵转化成一维数组,对一维数组中的元素进行降序排列,进而将一维数组中排在最后的那个不为零的元素置零,从而简单快速的把最接近零的权重去掉,能做到把对结果影响最小的的权重逐步舍去,实现参数的缩减,让vgg网络模型整体的数据量缩小。

本发明实施例还提供了一种vgg网络的训练装置,如图3所示,可以包括:

生成模块11,用于:生成包含有n个全连接层的vgg网络模型;

训练模块12,用于:对vgg网络模型进行训练,并在每步训练后将每个全连接层的权重矩阵中最接近于零的元素置零,直至每个全连接层中为零的元素在该全连接层的全部元素中所占比例达到预设值为止。

本发明实施例提供的一种vgg网络的训练装置,生成模块可以包括:

生成单元,用于:生成包含有n个全连接层及m个卷积层的vgg网络模型,每个卷积层中均包含激励函数relu且经过降采样处理。

本发明实施例提供的一种vgg网络的训练装置,训练模块可以包括:

训练单元,用于:采取学习速率自适应的方法对vgg网络模型进行训练。

本发明实施例提供的一种vgg网络的训练装置,训练模块可以包括:

置零单元,用于:在每步训练后将每个全连接层的权重矩阵转化为与每个全连接层对应的一维数组;对每个一维数组中元素的绝对值进行降序排列,并将每个一维数组中排在最后的不为零的元素置零。

本发明实施例提供的一种vgg网络的训练装置中相关部分的说明请参见本发明实施例提供的一种vgg网络的训练方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案一致的部分并未详细说明,以免过多赘述。

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

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