训练图像分类模型的方法及装置、计算机装置及存储介质与流程

文档序号:21366858发布日期:2020-07-04 04:42阅读:207来源:国知局
训练图像分类模型的方法及装置、计算机装置及存储介质与流程

本发明涉及图像处理技术领域,具体涉及一种训练图像分类模型的方法及装置、计算机装置及存储介质。



背景技术:

在图像处理技术领域中,经常要用到图像分类模型对输入的图像进行处理,而学习率是图像分类模型中最重要的超参数之一,在训练图像分类模型的参数时,学习率对每次使用梯度更新参数时的幅度起着重要作用,学习率设置的过大或过小都会使训练好的模型使用效果很差。

发明人在实现本发明的过程中发现:现有技术中,通常通过人工调参的方法,经过多次实验挑选出表现较好的学习率,该方法主要的缺点是非常耗时,而且要求调参者具备深度学习的专业知识。此外,虽然传统的自动化学习率搜索技术可以在一定程度上解决人工调参的弊端,但是依然需要通过人工确定最大学习率和最小学习率,并且使用该方法搜索超参数的效率较低,依然存在耗时,以及浪费计算资源的问题,甚至搜索到的超参数可能比人工调参的结果更差。



技术实现要素:

本发明提供了一种训练图像分类模型的方法及装置、计算机装置及存储介质,以解决上述背景技术中存在的至少一个问题。

为了实现上述目的,第一方面,本发明实施例提供了一种训练图像分类模型的方法,包括:

采用第一训练图像数据集,在固定除学习率以外的超参数的情况下,对待训练的图像分类模型进行预训练,获得预训练过程中各训练周期的损失值,其中,预训练过程中的训练周期数目为n,n为正整数,每个训练周期设置有对应的学习率;

基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练使用的最大学习率和最小学习率;

基于最大学习率和最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练。

进一步地,除学习率以外的超参数包括正则化参数、训练样本批量大小和训练周期数目中的至少一种。

进一步地,采用第一训练图像数据集,在固定除学习率以外的超参数的情况下,对待训练的神经网络图像分类模型进行预训练之前,还包括:

从第一存储器中读取除学习率以外的超参数。

进一步地,获得预训练过程中各训练周期的损失值之后,还包括:

将各训练周期的损失值存储到第二存储器中,第二存储器中还存储有各训练周期对应的学习率;

基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练使用的最大学习率和最小学习率,之前还包括:

从第二存储器中读取各训练周期对应的学习率,以及训练周期的损失值。

进一步地,每个训练周期包括m个学习步数,每个训练周期设置有对应m个学习率,且学习步数和所述学习率一一对应,其中m为正整数;

获得预训练过程中各训练周期的损失值包括:

获得预训练过程中各训练周期内m个学习步数对应的损失值;

基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练时的最大学习率和最小学习率包括:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,确定常规训练时的最大学习率和最小学习率。

进一步地,各训练周期中的m个学习步数对应的学习率依次递增,且第i个训练周期设置的学习率均大于第i-1个训练周期中设置的学习率,其中i为大于或等于2,小于或等于n的正整数。

进一步地,基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,确定常规训练时的最大学习率和最小学习率包括:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,构建学习率与损失值的函数关系式;

基于学习率与损失值的函数关系式的对应曲线,得到损失值连续递减的最大区间;

将最大区间内最小损失值对应的学习率确定为最大学习率;

基于最大学习率,以及预设的比例关系,得到最小学习率。

进一步地,基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,确定常规训练时的最大学习率和最小学习率包括:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内所述m个学习步数对应的损失值,构建学习率与损失值的函数关系式;

基于学习率与损失值的函数关系式,获得学习率与损失值的二阶导函数关系式;

获取学习率与损失值的二阶导函数关系式对应曲线的极大值点;

根据极大值点确定最大学习率;

基于最大学习率,以及预设的比例关系,得到最小学习率。

进一步地,根据极大值点确定最大学习率包括:

根据极大值点,以及预设的偏移阈值,确定最大学习率。

进一步地,基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,构建学习率与损失值的函数关系式包括:

将预训练过程中各训练周期内m个学习步数对应的损失值进行平滑处理,得到平滑处理后的损失值;

基于平滑处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式。

进一步地,将预训练过程中各训练周期内m个学习步数对应的损失值进行平滑处理,得到平滑处理后的损失值具体包括:

将预训练过程中各训练周期内m个学习步数对应的损失值进行指数加权平均处理,得到指数加权平均处理后的损失值;

基于平滑处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式包括:

基于指数加权平均处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式。

进一步地,确定常规训练使用的最大学习率和最小学习率之后,还包括:

将常规训练使用的最大学习率和最小学习率存储到第三存储器中;

基于最大学习率和最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练之前,还包括:

从第三存储器中读取最大学习率和最小学习率。

进一步地,第一训练图像数据集和第二训练图像数据集相同。

第二方面,本发明实施例提供了一种训练图像分类模型的装置,包括:

第一训练单元,用于采用第一训练图像数据集,在固定除学习率以外的超参数的情况下,对待训练的图像分类模型进行预训练,获得预训练过程中各训练周期的损失值,其中,预训练过程中的训练周期数目为n,n为正整数,每个训练周期设置有对应的学习率;

计算单元,用于基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练使用的最大学习率和最小学习率;

第二训练单元,用于基于最大学习率和最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练。

进一步地,除学习率以外的超参数包括正则化参数、训练样本批量大小和训练周期数目中的至少一种。

进一步地,训练图像分类模型的装置还包括:

第一存储器,用于存储除学习率以外的超参数;

第一训练单元在采用第一训练图像数据集,在固定除学习率以外的超参数的情况下,对待训练的神经网络图像分类模型进行预训练之前,还包括:

从第一存储器中读取除学习率以外的超参数。

进一步地,训练图像分类模型的装置还包括:

第二存储器,用于存储学习率和对应的损失值;

第一训练单元在获得预训练过程中各训练周期的损失值之后,还包括:

将各训练周期的损失值存储到第二存储器中,第二存储器中还存储有各训练周期对应的学习率;

计算单元在基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练使用的最大学习率和最小学习率之前,还包括:

从第二存储器中读取各训练周期对应的学习率,以及训练周期的损失值。

进一步地,每个训练周期包括m个学习步数,每个训练周期设置有对应m个学习率,且学习步数和学习率一一对应,其中m为正整数;

第一训练单元获得预训练过程中各训练周期的损失值具体包括:

获得预训练过程中各训练周期内m个学习步数对应的损失值;

计算单元基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练时的最大学习率和最小学习率具体包括:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,确定常规训练时的最大学习率和最小学习率。

进一步地,各训练周期中的m个学习步数对应的学习率依次递增,且第i个训练周期设置的学习率均大于第i-1个训练周期中设置的学习率,其中i为大于或等于2,小于或等于n的正整数。

进一步地,计算单元具体用于:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,构建学习率与损失值的函数关系式;

基于学习率与损失值的函数关系式的对应曲线,得到损失值连续递减的最大区间;

将最大区间内最小损失值对应的学习率确定为最大学习率;

基于最大学习率,以及预设的比例关系,得到最小学习率。

进一步地,计算单元还具体用于:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,构建学习率与损失值的函数关系式;

基于学习率与损失值的函数关系式,获得学习率与损失值的二阶导函数关系式;

获取学习率与损失值的二阶导函数关系式对应曲线的极大值点;

根据极大值点确定最大学习率;

基于最大学习率,以及预设的比例关系,得到最小学习率。

进一步地,计算单元根据极大值点确定最大学习率具体包括:

根据极大值点,以及预设的偏移阈值,确定最大学习率。

进一步地,计算单元基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,构建学习率与损失值的函数关系式具体包括:

将预训练过程中各训练周期内m个学习步数对应的损失值进行平滑处理,得到平滑处理后的损失值;

基于平滑处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式。

进一步地,将预训练过程中各训练周期内m个学习步数对应的损失值进行平滑处理,得到平滑处理后的损失值具体包括:

将预训练过程中各训练周期内m个学习步数对应的损失值进行指数加权平均处理,得到指数加权平均处理后的损失值;

基于平滑处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式包括:

基于指数加权平均处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式。

进一步地,训练图像分类模型的装置还包括:

第三存储器,用于存储最大学习率和最小学习率;

计算单元在确定常规训练使用的最大学习率和最小学习率之后,还包括:

将常规训练使用的最大学习率和最小学习率存储到第三存储器中;

第二训练单元在基于最大学习率和所述最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练之前,还包括:

从第三存储器中读取最大学习率和最小学习率。

进一步地,第一训练图像数据集和第二训练图像数据集相同。

第三方面,本发明实施例提供了一种计算机装置,计算机装置包括:

处理器和存储器;

该处理器用于执行存储器中存储的计算机程序时实现如上所述训练图像分类模型方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机指令,计算机指令被处理器执行时实现如上所述训练图像分类模型方法的步骤。

由上述技术内容,可以看出本发明具有以下有益效果:

本发明首先采用第一训练图像数据集对待训练的图像分类模型进行预训练,并且在预训练之前固定除学习率以外的超参数,从而排除了其它超参数的改变对损失值的影响;同时,将预训练过程划分为多个训练周期,为每个训练周期设置有对应的学习率,通过获取预训练过程中各训练周期的损失值,准确地得出了学习率与损失值之间的关系;然后可以根据上述学习率与损失值之间的关系计算出最大学习率和最小学习率,最后基于上述最大学习率和最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练。由于上述对图像分类模型的训练过程均可以通过计算机程序实现,不需要人工参与,从而有效地提高了计算最大学习率和最小学习率的效率,并且由于消除了人为干预的因素,因此计算出的最大学习率和最小学习率更准确,进而提高了图像分类模型的性能。

附图说明

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

图1为本发明实施例提供的第一种训练图像分类模型的方法的流程示意图;

图2为本发明实施例提供的第二种训练图像分类模型的方法的流程示意图;

图3为本发明实施例提供的第一种学习率与损失值的函数关系曲线图;

图4为本发明实施例提供的第三种训练图像分类模型的方法的流程示意图;

图5为本发明实施例提供的第二种学习率与损失值的函数关系曲线图;

图6为本发明实施例提供的第四种训练图像分类模型的方法的流程示意图;

图7为本发明实施例提供的第一种训练图像分类模型的装置的结构框图;

图8为本发明实施例提供的第二种训练图像分类模型的装置的结构框图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

针对现有技术中采用人工调参的方法,经过多次实验挑选出表现较好的学习率导致训练模型消耗的时间过长,并且要求调参者具备深度学习的专业知识的问题,以及采用自动化学习率搜索技术可以在一定程度上解决人工调参的弊端,但是依然需要通过人工确定最大学习率和最小学习率,导致搜索超参数的效率较低,依然存在耗时,以及浪费计算资源的问题,本发明提供了一个训练图像分类模型的技术方案,该技术方案能够在不要人工参与的情况下确定最大学习率和最小学习率。

具体的,图1是本发明实施例提供了第一种训练图像分类模型的方法,包括:

s101、采用第一训练图像数据集,在固定除学习率以外的超参数的情况下,对待训练的图像分类模型进行预训练,获得预训练过程中各训练周期的损失值,其中,预训练过程中的训练周期数目为n,n为正整数,每个训练周期设置有对应的学习率;

在本步骤中,其中的第一训练图像数据集可以直接从现有的数据库中获取,超参数是在模型开始训练之前设置的参数,可依据现有的对模型进行训练的经验进行设置,本发明实施例不做具体限制。

超参数的设置会影响图像分类模型的训练效果,而在超参数中对图像分类模型的训练效果影响最大的因素是学习率。为了得到学习率和损失值之间的函数关系,在对待训练的图像分类模型进行预训练之前,需要对除学习率以外的超参数进行固定。

s102、基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练使用的最大学习率和最小学习率;

在本步骤中,为了确定学习率和损失值之间的函数关系,需要采集多组数据。因此需要采用第一训练图像数据集对待训练的图像分类模型进行多次训练,即需要采用第一训练图像数据集对待训练的图像分类模型进行多个训练周期的训练。并且,为了更准确地反映学习率的改变对损失值产生的影响,每个训练周期需要设置不同的学习率,使损失值呈现出明显的变化趋势。

s103、基于最大学习率和最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练。

在本步骤中,在获取了多组学习率和损失值的数据后,即可确定在常规训练时使用的最大学习率和最小学习率。具体的方法例如可以是通过计算机程序根据多组学习率和损失值的数据建立两者之间的函数关系式,从而求出最大学习率和最小学习率;还可以是通过计算机程序根据多组学习率和损失值的数据建立两者之间的函数曲线图,然后根据函数曲线图得到最大学习率和最小学习率,本发明实施例不做具体限制。

在确定了最大学习率和最小学习率后,再采用第二训练图像数据集对图像分类模型进行常规训练,从而得到更精确的图像分类模型。

本发明实施例提供的技术方案,首先采用第一训练图像数据集对待训练的图像分类模型进行预训练,并且在预训练之前固定除学习率以外的超参数,从而排除了其它超参数的改变对损失值的影响;同时,将预训练过程划分为多个训练周期,为每个训练周期设置有对应的学习率,通过获取预训练过程中各训练周期的损失值,准确地得出了学习率与损失值之间的关系;然后可以根据学习率与损失值之间的关系计算出最大学习率和最小学习率,最后基于上述最大学习率和最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练。由于上述对图像分类模型的训练过程不均可以通过计算机程序实现,不需要人工参与,从而有效地提高了计算最大学习率和最小学习率的效率,并且由于消除了人为干预的因素,因此计算出的最大学习率和最小学习率更准确,进而使得到的图像分类模型性能更好。

在图1所示方法的基础上,在步骤s101中,除学习率以外的超参数包括正则化参数、训练样本批量大小和训练周期数目中的至少一种。

在一些实施例中,除了学习率以外的超参数对图像分类模型的性能影响较小,并且依据现有的对模型进行训练的经验,设置的这些超参数不会导致对图像分类模型的训练失效,例如正则化参数、训练样本批量大小和训练周期数目。此外,为了减少其它因素对训练图像分类模型的干扰,在对图像分类模型进行预训练之前,可以对除学习率以外的超参数进行固定,避免变量过多而导致得到的学习率与损失值之间的函数关系不准确。可依据现有的对模型进行训练的经验将正则化参数设置为10-5,训练样本批量大小可以根据计算机的运行内存设置为32或者64,训练周期数目可以设置为10,本发明实施例不做具体限制。

本发明实施例实现过程中,所需要的参数较多,因此可以设置相应的存储器,来存储相应的参数,例如可以设置第一存储器、第二存储器和第三存储器。

该第一存储器用于存储除学习率以外的超参数。因此,在图1所示方法的基础上,在步骤s101之前,还包括:

从第一存储器中读取除学习率以外的超参数。

通过设置第一存储器存储除学习率以外的超参数,使得在对图像分类模型进行训练时,可以直接从第一存储器中读取,而不需要再进行设置,从而提高了图像分类模型训练的速度。

该第二存储器用于存储学习率和对应的损失值。因此,在图1所示方法的基础上,在步骤s101之后,还包括:

将各训练周期的损失值存储到第二存储器中,第二存储器中还存储有各训练周期对应的学习率;

在图1所示方法的基础上,在步骤s102之前,还包括:

从第二存储器中读取各训练周期对应的学习率,以及训练周期的损失值。

在一些实施例中,通过改变各训练周期中的学习率而得到的损失值存储在第二存储器中,并且第二存储器中还存储有与损失值对应的学习率。在建立学习率和损失值之间的函数关系或者函数曲线时,可直接从第二存储器中读取数值。

在图1所示方法的基础上,在步骤s101中,每个训练周期包括m个学习步数,每个训练周期设置有对应m个学习率,且学习步数和所述学习率一一对应,其中m为正整数;

因此,在步骤s101中,获得预训练过程中各训练周期的损失值包括:

获得预训练过程中各训练周期内m个学习步数对应的损失值;

在图1所示方法的基础上,步骤s101包括:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,确定常规训练时的最大学习率和最小学习率。

在一些实施例中,由于受到计算机运行内存的限制,在采用第一训练图像数据集对图像分类模型进行预训练时,不能一次性将第一训练图像数据集中的所有数据输入图像分类模型中,因此需要将第一训练图像数据集分批输入图像分类模型中,一个训练周期包含m个学习步数,并且每个学习步数设置有相应的学习率,一个学习步数输入的数据量为第一训练图像数据集的总数据量除以m个学习步数。

进一步地,各训练周期中的m个学习步数对应的学习率依次递增,且第i个训练周期设置的学习率均大于第i-1个训练周期中设置的学习率,其中i为大于或等于2,小于或等于n的正整数。

在一些实施例中,若各训练周期中的m个学习步数对应的学习率设置为依次减小,则可能由于初始的学习率设置过大,导致计算的最大学习率和最小学习率在最优值两边摆动,从而影响图像分类模型的性能。因此,在本发明实施例中,应该将各训练周期中的m个学习步数对应的学习率设置为依次递增,并且初始的学习率应该设置为一个较小的值,相邻两个学习步数对应的学习率之间可以设置为较小的差值,从而可以更准确地反映随着学习率的变化,误差值如何变化。此外,第i个训练周期设置的学习率均需要大于第i-1个训练周期中设置的学习率,使学习率呈现阶梯式变化。学习率的取值可以根据实际需求进行设置,例如可以从区间[0.0000001,0.5]中取值,本发明实施例不做具体限制。

针对图1所示实施例中的步骤s102,可以通过多种方式来实现,例如通过建立学习率与损失值的函数关系式对应曲线的方式实现,或者通过建立学习率与损失值的二阶导函数关系式对应曲线的方式实现。

针对建立学习率与损失值的函数关系式对应曲线的方式,其可以具体参照图2所示。

图2为本发明实施例提供的第二种训练图像分类模型的方法示意图,如图2所示,包括如下步骤:

s201、基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,构建学习率与损失值的函数关系式;

s202、基于学习率与损失值的函数关系式的对应曲线,得到损失值连续递减的最大区间;

s203、将最大区间内最小损失值对应的学习率确定为最大学习率;

s204、基于最大学习率,以及预设的比例关系,得到最小学习率。

在一些实施例中,可以根据学习率和损失值的取值,建立学习率和损失值的之间的函数关系式,然后根据函数关系式生成对应的函数曲线。随着每个学习步数对应的学习率的递增,对应的损失值将逐渐减小,根据函数曲线可计算出损失值连续递减的最大区间,最大区间的右端点即为最大学习率。例如图3所示,其中p表示学习率,q表示损失值,d表示最大区间,l表示左端点,r表示右端点。然后根据预设的比例关系,将最大学习率对应的点进行平移,得到最小学习率,例如可以依据现有的对模型进行训练的经验,将最大学习率缩小为1/4到1/3,得到最小学习率,也可以根据实际需求设置预设的比例关系,本发明实施例不做具体限制。

此外,还可以直接将最大区间d的左端点l作为最小学习率,本发明实施例不做具体限制。

计算最大学习率和最小学习率的整个过程均可以通过计算机程序行,而无需人工参与,不仅有效地提高了训练图像分类模型的效率,还避免了由于人工介入导致训练的图像分类模型性能较差的问题。

针对建立学习率与损失值的二阶导函数关系式对应曲线的方式,其可以具体参照图4所示。

图4为本发明实施例提供的第三种训练图像分类模型的方法示意图,如图4所示,包括如下步骤:

s401、基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内所述m个学习步数对应的损失值,构建学习率与损失值的函数关系式;

s402、基于学习率与损失值的函数关系式,获得学习率与损失值的二阶导函数关系式;

s403、获取学习率与损失值的二阶导函数关系式对应曲线的极大值点;

s404、根据极大值点确定最大学习率;

s405、基于最大学习率,以及预设的比例关系,得到最小学习率。

在一些实施例中,在建立了学习率和损失值的之间的函数关系式之后,还可以通过学习率与损失值的二阶导函数关系式计算最大学习率和最小学习率。例如可以通过学习率与损失值的二阶导函数关系式对应曲线,计算出损失值关于学习率的二阶导数的极大值点,根据极大值点可以计算出损失值关于学习率的原函数的拐点,如图5所示。由于原函数在拐点处的凹凸性会发生变化,因此由极大值点计算出的拐点表示损失值由不断递减变为不断增加的点,而此拐点即为最大学习率。然后根据预设的比例关系,将最大学习率对应的点进行平移,得到最小学习率。

在图2所示方法的基础上,步骤s404具体包括:

根据极大值点,以及预设的偏移阈值,确定最大学习率。

在一些实施例中,这主要是考虑到在计算极大值时可能存在误差,导致由极大值确定的拐点存在偏差,计算出的拐点实际上位于曲线逐渐递增的位置,从而使计算出的最大学习率不准确。例如图5所示,其中p表示学习率,q表示损失值,l1表示原函数曲线,l2表示一阶导函数曲线,l3表示二阶导函数曲线,g1表示平移前的拐点,g2表示平移后的拐点。因此可以根据预设的偏移阈值,将拐点g1进行平移,例如将拐点g1向左平移90个学习步数,将平移后的拐点g2作为最大学习率,由此可以减小计算误差。

需要说明的是,预设的偏移阈值可根据实际需求进行设置,本发明实施例不做具体限制。

在图4所示的方法的基础上,如图6所示,步骤s401包括:

s601、将预训练过程中各训练周期内m个学习步数对应的损失值进行平滑处理,得到平滑处理后的损失值;

s602、基于平滑处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式。

在一些实施例中,由于损失值在某个较小的学习率变化区间内可能不是单调递增或者单调递减的,而反映在函数曲线上则呈现为忽高忽低的锯齿状,而这种函数曲线对于后续的计算最大学习率,以及二阶求导带来困难,并且使计算的最大学习率不准确。因此在计算最大学习率之前,需要对损失值进行平滑处理,然后再根据平滑处理后的损失值和对应的学习率构建学习率与损失值的函数关系式,此时根据函数关系式得到的损失值关于学习率的函数曲线即为一段平滑的曲线,再根据该曲线计算最大学习率时可以有效地提高准确率。

在图6所示的方法的基础上,步骤s601包括:

将预训练过程中各训练周期内m个学习步数对应的损失值进行指数加权平均处理,得到指数加权平均处理后的损失值;

基于平滑处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式包括:

基于指数加权平均处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式。

在一些实施例中,可以采用指数加权平均处理的方法对损失值进行平滑处理,也可以根据实际需求采用其它方法对损失值进行平滑处理,本申请实施例不做具体限制。

本发明实施例中还设置有第三存储器,用于存储最大学习率和最小学习率。因此,在图1所示方法的基础上,在步骤s102之后,还包括:

将常规训练使用的最大学习率和最小学习率存储到第三存储器中;

基于最大学习率和最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练之前,还包括:

从第三存储器中读取最大学习率和最小学习率。

在一些实施例中,最大学习率和最小学习率被存储在计算机的第三存储器中,在采用第二训练图像数据集对图像分类模型进行常规训练时可以直接从第三存储器中读取最大学习率和最小学习率,而不需要再通过人工进行输入,从而有效地提高了图像分类模型的训练速度。

此外,影响图像分类模型性能的主要因素是图像分类模型的结构,以及超参数的设置,因此在对图像分类模型进行常规训练时需要保持图像分类模型的结构,以及超参数不变。而由于最大学习率和最小学习率是采用第一训练图像数据集训练图像分类模型得到的,为了避免采用不同的训练图像数据集对图像分类模型进行常规训练时产生误差,影响图像分类模型的性能,因此可以使第一训练图像数据集和第二训练图像数据集相同,或者是至少保证部分相同,或者是第一训练图像数据集作为第二训练图像数据集的一部分。

具体的,图7为本发明实施例提供的第一种训练图像分类模型的装置结构框图,包括:

第一训练单元100,用于采用第一训练图像数据集,在固定除学习率以外的超参数的情况下,对待训练的图像分类模型进行预训练,获得预训练过程中各训练周期的损失值,其中,预训练过程中的训练周期数目为n,n为正整数,每个训练周期设置有对应的学习率;

在一些实施例中,第一训练单元100用于对待训练的图像分类模型进行预训练。其具体过程为先读取除学习率以外的超参数,并将这些超参数设置在待训练的图像分类模型中,然后通过改变学习率着一个变量,采用第一训练图像数据集对待训练的图像分类模型进行多个周期的训练,从而得到预训练过程中各训练周期的损失值。

计算单元200,用于基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练使用的最大学习率和最小学习率;

在一些实施例中,计算单元200根据预训练过程中各训练周期对应的学习率,以及对应的损失值,计算出最大学习率和最小学习率。

第二训练单元300,用于基于最大学习率和最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练。

在一些实施例中,第二训练单元300将最大学习率和最小学习率设置在图像分类模型中,然后采用第二训练图像数据集对图像分类模型进行常规训练。

本发明实施例提供的技术方案,首先采用第一训练图像数据集对待训练的图像分类模型进行预训练,并且在预训练之前固定除学习率以外的超参数,从而排除了其它超参数的改变对损失值的影响,准确地得出了学习率与损失值之间的关系,然后再根据学习率与损失值计算出最大学习率和最小学习率,最后再采用第二训练图像数据集对图像分类模型进行常规训练。由于整个过程可以通过计算机程序实现,不需要人工参与,从而有效地提高了计算最大学习率和最小学习率的效率,并且由于消除了人为干预的因素,因此计算出的最大学习率和最小学习率更准确,进而使得到的图像分类模型性能更好。

在一些实施例中,除学习率以外的超参数包括正则化参数、训练样本批量大小和训练周期数目中的至少一种。

在对图像分类模型进行训练时,除了学习率以外的超参数对图像分类模型的性能影响较小,并且依据现有的对模型进行训练的经验,设置的这些超参数不会导致对图像分类模型的训练失效,例如正则化参数、训练样本批量大小和训练周期数目。此外,为了减少其它因素对训练图像分类模型的干扰,在对图像分类模型进行预训练之前,可以对除学习率以外的超参数进行固定,避免变量过多而导致得到的学习率与损失值之间的函数关系不准确。

在一些实施例中,可依据现有的对模型进行训练的经验将正则化参数设置为10-5,训练样本批量大小可以根据计算机的运行内存设置为32或者64,训练周期数目可以设置为10,本发明实施例不做具体限制。

本发明实施例实现过程中,所需要的参数较多,因此可以设置相应的存储器,来存储相应的参数,例如可以设置第一存储器、第二存储器和第三存储器。

在图7所示的装置的基础上,如图8所示,为本发明实施例提供的第二种训练图像分类模型的装置的结构框图,包括第一存储器400,该第一存储器400用于存储除学习率以外的超参数。

第一训练单元100在采用第一训练图像数据集,在固定除学习率以外的超参数的情况下,对待训练的神经网络图像分类模型进行预训练之前,还包括:

从第一存储器400中读取除学习率以外的超参数。

在一些实施例中,除学习率以外的超参数可以预先设置在第一存储器400中,在对图像分类模型进行训练时,可以直接从第一存储器400中读取,而不需要再进行设置,从而提高了图像分类模型训练的速度。

如图8所示,本发明实施例提供的第二种训练图像分类模型的装置还包括第二存储器500,该第二存储器500用于存储学习率和对应的损失值。

第一训练单元100在获得预训练过程中各训练周期的损失值之后,还包括:

将各训练周期的损失值存储到第二存储器500中,第二存储器500中还存储有各训练周期对应的学习率;

计算单元200在基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练使用的最大学习率和最小学习率之前,还包括:

从第二存储器500中读取各训练周期对应的学习率,以及训练周期的损失值。

在一些实施例中,通过改变各训练周期中的学习率而得到的损失值存储在第二存储器500中,并且第二存储器500中还存储有与损失值对应的学习率。在建立学习率和损失值之间的函数关系或者函数曲线时,可直接从第二存储器500中读取数值。

在一些实施例中,每个训练周期包括m个学习步数,每个训练周期设置有对应m个学习率,且学习步数和所述学习率一一对应,其中m为正整数;

第一训练单元100获得预训练过程中各训练周期的损失值具体包括:

获得预训练过程中各训练周期内m个学习步数对应的损失值;

计算单元200基于预训练过程中各训练周期对应的学习率,以及获得的各训练周期的损失值,确定常规训练时的最大学习率和最小学习率具体包括:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,确定常规训练时的最大学习率和最小学习率。

在一些实施例中,由于受到计算机运行内存的限制,在采用第一训练图像数据集对图像分类模型进行预训练时,不能一次性将第一训练图像数据集中的所有数据输入图像分类模型中,因此需要将第一训练图像数据集分批输入图像分类模型中,一个训练周期包含m个学习步数,并且每个学习步数设置有相应的学习率,一个学习步数输入的数据量为第一训练图像数据集的总数据量除以m个学习步数。

在一些实施例中,各训练周期中的m个学习步数对应的学习率依次递增,且第i个训练周期设置的学习率均大于第i-1个训练周期中设置的学习率,其中i为大于或等于2,小于或等于n的正整数。

在本发明实施例中,若各训练周期中的m个学习步数对应的学习率设置为依次减小,则可能由于初始的学习率设置过大,导致计算的最大学习率和最小学习率在最优值两边摆动,从而影响图像分类模型的性能。因此,在本发明实施例中,应该将各训练周期中的m个学习步数对应的学习率设置为依次递增,并且初始的学习率应该设置为一个较小的值,相邻两个学习步数对应的学习率之间可以设置为较小的差值,从而可以更准确地反映随着学习率的变化,误差值如何变化。此外,第第i个训练周期设置的学习率均需要大于第i-1个训练周期中设置的学习率,使学习率呈现阶梯式变化。学习率的取值可以根据实际需求进行设置,例如可以从区间[0.0000001,0.5]中取值,本发明实施例不做具体限制。

针对图7所示实施例中的计算单元200,可以通过多种方式来实现其功能,例如通过建立学习率与损失值的函数关系式对应曲线的方式实现,或者通过建立学习率与损失值的二阶导函数关系式对应曲线的方式实现。

针对建立学习率与损失值的函数关系式对应曲线的方式,计算单元200具体用于:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,构建学习率与损失值的函数关系式;

基于学习率与损失值的函数关系式的对应曲线,得到损失值连续递减的最大区间;

将最大区间内最小损失值对应的学习率确定为最大学习率;

基于最大学习率,以及预设的比例关系,得到最小学习率。

在一些实施例中,可以根据学习率和损失值的取值,建立学习率和损失值的之间的函数关系式,然后根据函数关系式生成对应的函数曲线。随着每个学习步数对应的学习率的递增,对应的损失值将逐渐减小,根据函数曲线可计算出损失值连续递减的最大区间,最大区间的右端点即为最大学习率。例如图3所示,其中p表示学习率,q表示损失值,d表示最大区间,l表示左端点,r表示右端点。然后根据预设的比例关系,将最大学习率对应的点进行平移,得到最小学习率,例如可以依据现有的对模型进行训练的经验,将最大学习率缩小为1/4到1/3,得到最小学习率,也可以根据实际需求设置预设的比例关系,本发明实施例不做具体限制。

此外,还可以直接将最大区间d的左端点l作为最小学习率,本发明实施例不做具体限制。

计算最大学习率和最小学习率的整个过程均可以通过计算机程序进行,而无需人工参与,不仅有效地提高了训练图像分类模型的效率,还避免了由于人工介入导致训练的图像分类模型性能较差的问题。

针对建立学习率与损失值的二阶导函数关系式对应曲线的方式,计算单元200还用于:

基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内所述m个学习步数对应的损失值,构建学习率与损失值的函数关系式;

基于学习率与损失值的函数关系式,获得学习率与损失值的二阶导函数关系式;

获取学习率与损失值的二阶导函数关系式对应曲线的极大值点;

根据极大值点确定最大学习率;

基于最大学习率,以及预设的比例关系,得到最小学习率。

在一些实施例中,在建立了学习率和损失值的之间的函数关系式之后,还可以通过学习率与损失值的二阶导函数关系式计算最大学习率和最小学习率。例如可以通过学习率与损失值的二阶导函数关系式对应曲线,计算出损失值关于学习率的二阶导数的极大值点,根据极大值点可以计算出损失值关于学习率的原函数的拐点,如图5所示。由于原函数在拐点处的凹凸性会发生变化,因此由极大值点计算出的拐点表示损失值由不断递减变为不断增加的点,而此拐点即为最大学习率。然后根据预设的比例关系,将最大学习率对应的点进行平移,得到最小学习率。

在一些实施例中,计算单元200根据极大值点确定最大学习率包括:

根据极大值点,以及预设的偏移阈值,确定最大学习率。

这主要是考虑到由于在计算极大值时可能存在误差,导致由极大值确定的拐点存在偏差,计算出的拐点实际上位于曲线逐渐递增的位置,从而使计算出的最大学习率不准确。例如图5所示,其中p表示学习率,q表示损失值,l1表示原函数曲线,l2表示一阶导函数曲线,l3表示二阶导函数曲线,g1表示平移前的拐点,g2表示平移后的拐点。因此可以根据预设的偏移阈值,将拐点g1进行平移,例如将拐点g1向左平移90个学习步数,将平移后的拐点g2作为最大学习率,由此可以减小计算误差。

需要说明的是,预设的偏移阈值可根据实际需求进行设置,本发明实施例不做具体限制。

在一些实施例中,计算单元200基于预训练过程中各训练周期对应的m个学习率,以及各训练周期内m个学习步数对应的损失值,构建学习率与损失值的函数关系式具体包括:

将预训练过程中各训练周期内m个学习步数对应的损失值进行平滑处理,得到平滑处理后的损失值;

基于平滑处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式。

由于损失值在某个较小的学习率变化区间内可能不是单调递增或者单调递减的,而反映在函数曲线上则呈现为忽高忽低的锯齿状,而这种函数曲线对于后续的计算最大学习率,以及二阶求导带来困难,并且使计算的最大学习率不准确。因此在计算最大学习率之前,需要对损失值进行平滑处理,然后再根据平滑处理后的损失值和对应的学习率构建学习率与损失值的函数关系式,此时根据函数关系式得到的损失值关于学习率的函数曲线即为一段平滑的曲线,再根据该曲线计算最大学习率时可以有效地提高准确率。

在一些实施例中,将预训练过程中各训练周期内m个学习步数对应的损失值进行平滑处理,得到平滑处理后的损失值具体包括:

将预训练过程中各训练周期内m个学习步数对应的损失值进行指数加权平均处理,得到指数加权平均处理后的损失值;

基于平滑处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式包括:

基于指数加权平均处理后的损失值和对应的学习率,构建学习率与损失值的函数关系式。

在本申请实施例中,可以采用指数加权平均处理的方法对损失值进行平滑处理,也可以根据实际需求采用其它方法对损失值进行平滑处理,本申请实施例不做具体限制。

在一些实施例中,如图8所示,本发明实施例提供的第二种训练图像分类模型的装置还包括第三存储器600,用于存储最大学习率和最小学习率。

计算单元200在确定常规训练使用的最大学习率和最小学习率之后,还包括:

将常规训练使用的最大学习率和最小学习率存储到第三存储器600中;

第二训练单元300在基于最大学习率和最小学习率,采用第二训练图像数据集对图像分类模型进行常规训练之前,还包括:

从第三存储器600中读取最大学习率和最小学习率。

在一些实施例中,最大学习率和最小学习率被存储在计算机的第三存储器600中,在采用第二训练图像数据集对图像分类模型进行常规训练时可以直接从第三存储器600中读取最大学习率和最小学习率,而不需要再通过人工进行输入,从而有效地提高了图像分类模型的训练速度。

在一些实施例中,第一训练图像数据集和第二训练图像数据集相同。

这主要是考虑到影响图像分类模型性能的主要因素是图像分类模型的结构,以及超参数的设置,因此在对图像分类模型进行常规训练时需要保持图像分类模型的结构,以及超参数不变。而由于最大学习率和最小学习率是采用第一训练图像数据集训练图像分类模型得到的,为了避免采用不同的训练图像数据集对图像分类模型进行常规训练时产生误差,影响图像分类模型的性能,因此需要保证第一训练图像数据集和第二训练图像数据集相同。

第三方面,本发明实施例提供了一种计算机装置,计算机装置包括处理器和存储器;其中的处理器用于执行存储器中存储的计算机程序时实现如上所述训练图像分类模型的方法的步骤。

处理器可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制计算机中的其他组件以执行期望的功能。

存储器可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器可以运行所述程序指令,以实现上文所述的本申请的各个实施例的方法步骤以及/或者其他期望的功能。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机指令,计算机指令被处理器执行时实现如上所述训练图像分类模型方法的步骤。

除了上述方法和装置以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本申请各种实施例的方法步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本申请各种实施例的方法步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。

本领域的技术人员能够理解,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

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