一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种更新深度学习训练超参数的方法、装置及设备与流程

2022-11-23 13:37:30 来源:中国专利 TAG:


1.本发明涉及深度学习技术领域,特别涉及一种更新深度学习训练超参数的方法、装置及设备。


背景技术:

2.目前,深度学习技术已被广泛应用于图像、声音识别及分类等技术领域中。对于图像分类等任务而言,如何加快模型训练过程的收敛、提升训练效率和模型精度至关重要。在模型训练过程中,超参数的设置及更新策略对于模型训练的收敛影响较大。具体来说,深度学习框架迭代一次神经网络通常包括四个步骤:数据处理、神经网络前向计算、反向计算网络参数梯度以及更新网络参数,而在迭代的过程中需要依赖很多超参数,例如学习率、动量、权重衰减系数等,采用不同组合的超参数对神经网络的训练速度及效率的影响各不相同,因此通常需要对训练过程中的各个超参数进行精细的调整,从而使神经网络能够更好的收敛。很多深度学习框架都提供了参数调度的方式,比如pytorch的学习率调度器lrscheduler。但是,这些调度器通常只能够调整一种超参数,其难以根据需求制定逻辑较为复杂的超参数更新策略。


技术实现要素:

3.基于现有技术中的部分或全部问题,本发明一方面提供一种更新深度学习训练超参数的方法,包括:
4.构建参数调度器;以及
5.在深度学习训练的每一次迭代时,根据预设的更新频率从所述参数调度器中调用数值,以更新一个或多个超参数,其中所述数值通过所述参数调度器按照预设的参数值更新方法计算得到。
6.进一步地,所述参数调度器包括:
7.参数名,用于提供需要更新的超参数名称;
8.参数基准值,用于存储所述需要更新的超参数的初始值;
9.更新频率,用于确定所述参数调度器的更新频率;
10.计数器,用于记录已进行的训练轮次和/或迭代次数;以及
11.参数更新方法。
12.进一步地,所述参数调度器有多个,所述多个参数调度器相互叠加或拼接,其中每个所述参数调度器用于按照不同或相同的更新频率,采用相同或不同的更新方法更新不同或相同的超参数的数值。
13.进一步地,所述参数调度器还包括生效区间,用于提供所述参数调度器的生效范围,若当前训练轮次和/或迭代次数不在所述生效区间内,则不更新对应的超参数。
14.进一步地,所述计数器包括:
15.全局计数器,用于记录整个训练过程中已进行的训练轮次或迭代次数;以及
16.生效计数器,用于记录在所述生效区间内已进行的训练轮次或迭代次数。
17.进一步地,所述预设的更新频率包括:
18.按训练轮次更新,相应的超参数在模型迭代完训练数据集一轮后更新;以及
19.按迭代次数更新,相应的超参数在模型完成一次迭代后更新,其中一次迭代包括前向传播、损失计算、反向传播以及网络更新四个步骤。
20.进一步地,所述预设的参数值更新方法可采用现有的成熟调整方法,也可以由用户自定义得到,。
21.基于如前所述的方法,本发明另一方面提供一种更新深度学习训练超参数的处理装置,包括:
22.调用模块,用于构建参数调度器;以及
23.处理模块,用于通过所述参数调度器,在深度学习训练过程中更新超参数。
24.本发明还提供一种电子设备,其包括存储器以及处理器,其中所述存储器用于存储计算机程序,所述计算机程序在所述处理器运行时执行如前所述的更新深度学习训练超参数的方法。
25.本发明还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行如前所述的更新深度学习训练超参数的方法。
26.本发明提供的一种更新深度学习训练超参数的方法、装置及设备,通过设计一种通用的参数调度器以及参数调度器的接口规范,为不同的参数调度逻辑提供统一的接口,使得其可根据用户设置的参数名来调整超参数组中的对应参数,进而对超参数组中的任意参数值进行调度。所述方法支持调整参数调度器的更新频率和生效区间,进而增强了参数调度器模块的灵活性,使得用户可以适应多个参数调度器任意组合使用,包括但不限于多个调度器的拼接、叠加,灵活组合参数调度方案,进而灵活地控制训练过程中的超参数。
27.本发明所提供的参数调度器方案可在图像、声音识别或分类等领域中用于实现如下技术效果:通过使用参数调度器将深度学习算法训练过程中的各种超参数的调整方式统一化,标准化。因此,可以方便地设置不同策略的参数调度器,并对其进行组合,以衍生出更多更复杂的参数更新策略,有效降低了深度学习算法的开发难度。标准化的参数调整流程使得在深度学习算法的训练中调整超参数更加便捷和高效,有效的提升了训练的运行速度。
28.将本发明应用于图像分类等领域时也能够加快模型训练过程的收敛,提升训练效率和模型精度。例如在训练分类算法时,初期使用过大的学习率容易造成算法无法收敛,此时可以添加一个线性增长策略的参数调度器来调整学习率,实现学习率预热。而在训练过程中,使用固定学习率或者余弦退火的学习率策略又容易使算法陷入局部最优,这时可以通过加入多组余弦退火策略的参数调度器来调整学习率和动量,使算法跳出局部最优点,从而提升最终的精度。
附图说明
29.为进一步阐明本发明的各实施例的以上和其它优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。在附图中,为了清楚明了,相同或相应的部件将用相同或类似
的标记表示。
30.图1示出本发明一个实施例的一种更新深度学习训练超参数的方法的流程示意图。
具体实施方式
31.以下的描述中,参考各实施例对本发明进行描述。然而,本领域的技术人员将认识到可在没有一个或多个特定细节的情况下或者与其它替换和/或附加方法或组件一起实施各实施例。在其它情形中,未示出或未详细描述公知的结构或操作以免模糊本发明的发明点。类似地,为了解释的目的,阐述了特定数量和配置,以便提供对本发明的实施例的全面理解。然而,本发明并不限于这些特定细节。
32.在本说明书中,对“一个实施例”或“该实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。在本说明书各处中出现的短语“在一个实施例中”并不一定全部指代同一实施例。
33.需要说明的是,本发明的实施例以特定顺序对方法步骤进行描述,然而这只是为了阐述该具体实施例,而不是限定各步骤的先后顺序。相反,在本发明的不同实施例中,可根据实际需求来调整各步骤的先后顺序。
34.由于不同深度学习算法的训练过程中会使用不同的参数调度策略,因此每个算法都会有自己的参数调度逻辑,大部分情况下会使用函数去控制超参数。但如果想要灵活的切换不同的参数调度策略,则需要深度学习训练框架提供参数调度器。但是,目前主流的深度学习框架,如pytorch,提供的调度器只能够调整学习率这一种超参数,并不能让具有同一逻辑的调度器调度其他的超参数,也不能调整此调度器的更新频率和生效区间。超参数的调度也可以理解为是超参数数值的更新。为了为不同的参数调度逻辑提供统一的接口,进而对超参数组中的任意参数值进行调度,本发明提供一种更新深度学习训练超参数的方法、装置及设备,通过设计的通用的参数调度器以及参数调度器的接口规范,使得参数调度器可以根据用户设置的参数名来调整超参数组中的对应参数,同时,所述参数调度器具有参数更新频率、生效区间这两个属性可以设置,进而用户可以配置多个参数调度器,将其叠加或者拼接,组合成自己想要的参数调度方案,大大提升模型训练效率。
35.下面结合实施例附图,对本发明的方案做进一步描述。
36.图1示出本发明一个实施例的一种更新深度学习训练超参数的方法的流程示意图。如图1所示,一种更新深度学习训练超参数的方法,其主要通过构造通用的参数调度器来实现灵活的参数更新策略,所述方法包括:
37.首先,在步骤101,构造参数调度器。在本发明的实施例中,在深度学习训练开始之前,需要将训练所用的超参数组字典传递给参数调度器的构造函数,以实例化一个或多个参数调度器。在本发明的一个实施例中,所述构造函数用于实例化参数调度器类,其主要参数包括:
38.参数名,即需要进行调度的超参数的名称,为一个字符串或一系列字符串的列表;以及
39.超参数组,深度学习训练的训练模型中的一系列超参数,为一个字典:
40.{key1:value1,key2:value2,

,keyn:valuen},
41.其中,key1、key2、

、keyn即为超参数的名称,例如学习率、动量、权重衰减系数等,value1、value2、

、valuen则为所述超参数的初始值。
42.在本发明的一个实施例中,所述构造函数的参数还包括生效区间起始以及生效区间结束,分别指所述参数调度器的生效区间的上下限值,通常为整数类型。
43.在本发明的一个实施例中,所述参数调度器至少包括以下参数:
44.参数名,指需要进行调度的超参数的名称,其用于从超参数组中获取对应的超参数。在本发明的一个实施例中,所述参数名为一个字符串,则所述参数调度器仅用于更新一个超参数的值。在本发明的又一个实施例中,所述参数名为一系列字符串的列表,则所述参数调度器可用于更新多个超参数的值;
45.参数基准值,指存储所述需要更新的超参数的初始值;
46.是否按轮次更新,控制超参数更新频率的标志,用于决定是按训练轮次更新还是按迭代次数更新。在本发明的一个实施例中,所述参数调度器按训练轮次更新,也就是说相应的超参数在模型迭代完训练数据集一轮后更新一次,通常一次迭代所采用的数据为整个训练数据集中的一小批样本,因此一轮迭代是指逐批进行数据迭代,直至整个训练数据集全部迭代完成。在本发明的又一个实施例中,所述参数调度器按迭代次数更新,相应的超参数在模型完成一次迭代,其中一次迭代包括前向传播、损失计算、反向传播、及网络更新后更新四个步骤;通过灵活组合不用的参数调度器,即可实现不同参数采用不同的更新频率进行更新;
47.生效区间,指所述参数调度器的生效范围,具体而言,仅当前训练轮次和/或迭代次数在所述生效区间内时,才会采用该参数调度器进行超参数的更新。在本发明的一个实施例中,可以设置所述参数调度器的生效范围:如果是按训练轮次更新,所述生效区间是指从第几个轮次到第几个轮次需要更新超参数;以及如果是按迭代次数更新,则所述生效区间是指从第几次迭代到第几次迭代需要更新超参数;通过灵活组合不用的参数调度器,即可实现根据实际需求在不同阶段更新不同的超参数,进而优化模型训练进程,提升训练效率;以及
48.计数器,用于记录已进行的训练轮次和/或迭代次数。在本发明的一个实施例中,所述计数器包括全局计数器,其用于记录在整个深度学习训练过程中进行到了第几个训练轮次或迭代次数。在本发明的又一个实施例中,所述计数器还包括生效计数器,其用于记录在生效区间内进行到了第几个训练轮次或迭代次数。
49.在本发明的一个实施例中,所述参数调度器主要包括两个接口,更新参数接口以及获取参数值接口。所述更新参数接口用于单次执行参数调度器,每调用一次,所述全局计数器累加一次。此外,若所述参数调度器设置有生效区间,则在赋值前,还需判断当前迭代次数是否处于生效区间内,如果是,则将生效计数器累计一次,并调用获取参数值接口计算当前值,然后赋值给超参数组中对应的超参数。所述获取参数值接口用于按参数调度逻辑,根据生效计数器累计的次数计算当前值,即计算相应的超参数的更新数值,其定义了参数调度的逻辑。在本发明的一个实施例中,所述参数调度的逻辑采用现有成熟的调整方法,例如固定值、指数调整法、多项式调整法、多步调整法、onecycle调整法、余弦退火、线性调整等。在本发明的又一个实施例中,也可以由用户根据实际需求自行定义相应的参数调度逻辑。所述获取参数值接口是参数调度的核心逻辑,所有子类参数调度器都需要重载此接口
来实现不同的参数调度逻辑。通过灵活组合不用的参数调度器,可以在不同阶段对同一参数采用不同的更新策略,例如在训练过程中,使用固定学习率或者余弦退火的学习率策略又容易使算法陷入局部最优,这时可以通过加入多组余弦退火策略的参数调度器来调整学习率和动量,使算法跳出局部最优点,从而提升最终的精度,此外,也可针对不同超参数设置不同的更新策略;以及
50.接下来,在步骤102,超参数更新。在深度学习训练的每一次迭代时,根据预设的更新频率从所述参数调度器中调用数值,以更新一个或多个超参数,其中所述数值通过所述参数调度器按照预设的参数值更新方法计算得到。具体而言,在深度学习训练过程中,会根据参数调度器的更新频率调用所述参数调度器的更新参数接口,此时,所述参数调度器会首先判断自身的更新频率是按迭代次数更新还是按训练轮次更新,若按迭代次数更新,则执行更新参数操作,且全局计数器数值加1,然后根据所述全局计数器中的数值判断当前的迭代次数是否处于自己的生效区间内,若是,则调用获取参数值方法获取计算出来的值,并给对应的超参数赋值;若按训练轮次更新,则首先判断该训练轮次是否结束,若未结束,则不更新超参数,若已结束,及当前为网络更新这一阶段,则执行更新参数操作,且全局计数器数值加1,然后根据所述全局计数器中的数值判断当前的训练轮次是否处于自己的生效区间内,若是,则调用获取参数值方法获取计算出来的值,并给对应的超参数赋值。
51.由于在深度学习训练中,对于不同的超参数的更新频率需求、更新策略等可能不同,所以,在本发明的一个实施例中,可以根据不同的超参数的更新频率、和/或更新策略实例化多个参数调度器,并根据实际需求将所述多个参数调度器叠加或拼接组成一个列表,进而逐个调用,以实现高度灵活的参数更新策略,在训练的不同阶段采用不同的超参数组合,提升整体训练效率,并能够得到更优的模型精度。应当理解的是,在本发明的实施例中,每个所述参数调度器的更新频率可以相同或不同,其所采用的超参数更新方法也可以相同或不同,其更新的超参数也可以相同或不同。
52.在本发明的一个实施例中,还提供一种更新深度学习训练超参数的处理装置,以用于实现如前所述的更新深度学习训练超参数的方法,所述处理装置包括调用模块以及处理模块。其中,所述调用模块用于构建参数调度器。所述处理模块则用于通过所述参数调度器,在深度学习训练过程中更新超参数。
53.在本发明的一个实施例中,还提供一种电子设备,其包括存储器以及处理器,其中所述存储器用于存储计算机程序,所述计算机程序在所述处理器运行时执行如前所述的更新深度学习训练超参数的方法。
54.在本发明的一个实施例中,还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行如前所述的更新深度学习训练超参数的方法。
55.本发明提供的一种更新深度学习训练超参数的方法、装置及设备,通过设计一种通用的参数调度器以及参数调度器的接口规范,为不同的参数调度逻辑提供统一的接口,使得其可根据用户设置的参数名来调整超参数组中的对应参数,进而对超参数组中的任意参数值进行调度。所述方法支持调整参数调度器的更新频率和生效区间,进而增强了参数调度器模块的灵活性,使得用户可以适应多个参数调度器任意组合使用,包括但不限于多个调度器的拼接、叠加,灵活组合参数调度方案,进而灵活地控制训练过程中的超参数。
56.尽管上文描述了本发明的各实施例,但是,应该理解,它们只是作为示例来呈现
的,而不作为限制。对于相关领域的技术人员显而易见的是,可以对其做出各种组合、变型和改变而不背离本发明的精神和范围。因此,此处所公开的本发明的宽度和范围不应被上述所公开的示例性实施例所限制,而应当仅根据所附权利要求书及其等同替换来定义。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献