深度学习优化器封装方法技术

技术编号:35694987 阅读:13 留言:0更新日期:2022-11-23 14:45
本发明专利技术提供了一种深度学习优化器封装方法,包括:进行优化器封装;通过优化器封装将不同深度学习后端、不同硬件的优化器封装成通用的接口,以降低使用者的学习成本;根据不同深度学习后端的特性,通过优化器封装选择最优优化器功能,以降低使用特定优化功能的学习成本。本。本。

【技术实现步骤摘要】
深度学习优化器封装方法


[0001]本专利技术涉及人工智能
,特别涉及一种深度学习优化器封装方法。

技术介绍

[0002]深度学习任务通常使用优化器(optimizer)来优化神经网络的参数,优化过程一般分为神经网络前向推理、梯度反向传导、参数优化和梯度清零三个步骤。
[0003]不同深度学习任务可能会采取不同的优化功能,例如使用混合精度训练来降低显存占用、提高训练速度;使用梯度累降低算法对显存的要求。使用者通常需要基于使用的深度学习后端自行实现这些训练功能。
[0004]不同深度学习后端(Pytorch、TensorFlow、PaddlePaddle等)的优化器接口有所不同,有着不同的调度逻辑;不同硬件平台(GPU、TPU、IPU等)在对接不同深度学习后端时,神经网络的优化流程也存在不同程度的限制;因此当使用者基于特定后端、特定硬件去实现相应的优化功能时具有较大的学习成本。

技术实现思路

[0005]本专利技术的目的在于提供一种深度学习优化器封装方法,以解决现有的深度学习基于特定后端、特定硬件去实现相应的优化功能具有学习成本高的问题。
[0006]为解决上述技术问题,本专利技术提供一种深度学习优化器封装方法,包括:
[0007]进行优化器封装;通过优化器封装将多个深度学习后端、以及多个硬件的优化器类实例封装成自身的属性,提供通用的的接口,以降低使用者的学习成本;以及根据深度学习后端的特性,在统一接口的前提下,设计不同后端优化器封装的继承层级;
[0008]以及基于统一的接口,实现了不同后端的优化策略,以降低用户使用优化策略的学习成本。
[0009]根据不同深度学习后端的特性,通过优化器封装选择不同的继承层级,以降低使用特定优化策略功能的学习成本,也就是说,根据不同深度学习后端的特性,将优化器功能封装成统一的参数或者抽象出接口相同的,新的优化器封装实例。降低使用者的学习成本。
[0010]优化器功能由使用者自己选择,而优化器封装是根据不同深度学习后端的特性设计出不同的继承层级。如图3中的继承层级。
[0011]可选的,在所述的深度学习优化器封装方法中,还包括:
[0012]抽象出(提取)优化器封装基类,以提供通用的优化器接口;
[0013]对不同深度学习后端的优化器进行封装,形成优化器封装子类,以能够进行梯度反向传递功能、参数更新功能、梯度清零功能、以及梯度累加功能;
[0014]根据深度学习训练后端的特性,派生出对应后端混合精度训练的优化器封装子类;
[0015]支持的优化器策略包括混合精度训练和梯度累加。
[0016]可选的,在所述的深度学习优化器封装方法中,还包括:
[0017]为各个深度学习后端的优化器提供通用的接口;
[0018]约定基于优化器封装标准的参数更新流程;以及
[0019]使用优化器封装字典管理多个优化器,以调用通用的接口返回所有优化器的状态信息,所述状态信息包括学习率和动量。
[0020]可选的,在所述的深度学习优化器封装方法中,所述通用的接口包括:
[0021]参数更新接口,被配置为能够完成一次标准的梯度反向传递、参数更新、梯度清零流程;调用参数更新接口时,根据优化器封装的配置进行梯度累加;以及
[0022]优化器封装上下文接口,被配置为开启混合精度训练、加速梯度累加的上下文。
[0023]可选的,在所述的深度学习优化器封装方法中,基于优化器封装标准的参数更新流程包括:
[0024]开启优化器封装上下文接口的上下文,在上下文中进行网络的前向推理,实现混合精度训练或加速梯度累加;以及
[0025]在优化器封装上下文接口的上下文之外调用参数更新接口,通过参数更新接口自带的梯度累加功能、梯度截断功能更新参数。
[0026]可选的,在所述的深度学习优化器封装方法中,优化器封装基类包括基类接口,基类接口包括:
[0027]参数更新接口、梯度反向传播接口、步进接口、梯度清零接口、获取状态字典接口、加载状态字典接口、优化器封装上下文接口、迭代次数初始化接口、获取学习率接口、获取动量接口、获取参数组接口。
[0028]可选的,在所述的深度学习优化器封装方法中,优化器封装子类与基类接口一致,对不同深度学习后端的优化器进行封装,实现和基类优化器封装相同的接口;
[0029]优化器封装子类功能包括:
[0030]开启混合精度训练,由于不同深度学习后端开启混合精度训练的流程不同,根据不同后端选择开启混合精度训练的方式;以及
[0031]支持梯度累加,并优化分布式训练时梯度累加的效率,加速分布式训练下的梯度累加;
[0032]其中根据不同后端选择开启混合精度训练的方式包括:
[0033]能够通过初始化参数开启混合精度训练;
[0034]能够通过上下文的方式开启混合精度训练;
[0035]可选的,在所述的深度学习优化器封装方法中,还包括:
[0036]实现和基类优化器封装相同的接口包括:子类基于对应的后端实现参数更新、梯度反向传播、步进、梯度清零、加载状态字典、获取参数组、获取学习率、获取动量;
[0037]开启混合精度训练包括:如果对应的后端能够通过初始化全局变量开启混合精度训练,则无需派生额外混合精度子类,如果需要重载数量多于阈值的接口,则进一步派生对应后端的子类,实现混合精度训练;同时在网络前向推理之前开启优化器封装上下文接口的上下文,以保证各后端优化器封装开启混合精度训练的方式一致;
[0038]通过优化器封装基类实现梯度累加功能;
[0039]在不开启梯度累加的默认情况下,分布式训练时每次参数更新都会进行梯度同步。因此优化器封装子类需要根据后端特性优化梯度同步逻辑,避免梯度累加时发生非必
要的梯度同步,以加速梯度累加的过程;
[0040]加速梯度累加需要在模型前向推导时开启优化器封装上下文。
[0041]可选的,在所述的深度学习优化器封装方法中,还包括:
[0042]在训练多优化器任务时,例如生成对抗网络,提取优化器封装字典以组织多个优化器封装,以实现用优化器封装字典管理多个优化器封装;
[0043]优化器封装字典包括:梯度清零接口、获取参数组接口、获取状态字典接口、加载状态字典接口、获取学习率接口、获取动量接口。
[0044]可选的,在所述的深度学习优化器封装方法中,
[0045]进行优化器封装,以提供通用的梯度反向传递接口、参数更新接口、梯度清零接口,屏蔽不同深度学习后端、不同硬件的差异;提供通用的接口进行混合精度训练和梯度累加;
[0046]优化器封装基类派生出不同深度学习后端、不同硬件的优化器封装子类,子类接口与父类统一,实现对应后端功能、硬件梯度反向传递功能、参数更新功能、梯度清零功能;
[0047]优化器封装子类在硬件平台和深度学习后端允许的情况下,提供通用的接口,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种深度学习优化器封装方法,其特征在于,包括:进行优化器封装;通过优化器封装将多个深度学习后端、以及多个硬件的优化器封装成通用的接口;以及根据所述多个深度学习后端的特性,在统一接口的前提下,设计不同后端优化器封装的继承层级。2.如权利要求1所述的深度学习优化器封装方法,其特征在于,还包括:提取优化器封装基类,以提供通用的优化器接口;对不同深度学习后端的优化器进行封装,以能够进行梯度反向传递功能、参数更新功能、梯度清零功能、以及梯度累加功能;根据深度学习训练后端的特性,派生出对应后端混合精度训练的优化器封装子类;支持的优化器策略包括混合精度训练和梯度累加。3.如权利要求2所述的深度学习优化器封装方法,其特征在于,还包括:为各个深度学习后端的优化器提供通用的接口;约定基于优化器封装标准的参数更新流程;以及使用优化器封装字典管理多个优化器,以调用通用的接口返回所有优化器的状态信息,所述状态信息包括学习率和动量。4.如权利要求3所述的深度学习优化器封装方法,其特征在于,所述通用的接口包括:参数更新接口,被配置为能够完成一次标准的梯度反向传递、参数更新、梯度清零流程;调用参数更新接口时,根据优化器封装的配置进行梯度累加;以及优化器封装上下文接口,被配置为开启混合精度训练、加速梯度累加的上下文。5.如权利要求4所述的深度学习优化器封装方法,其特征在于,基于优化器封装标准的参数更新流程包括:开启优化器封装上下文接口的上下文,在上下文中进行网络的前向推理,实现混合精度训练或加速梯度累加;以及在优化器封装上下文接口的上下文之外调用参数更新接口,通过优化器封装自带的梯度累加功能、梯度截断功能更新参数。6.如权利要求5所述的深度学习优化器封装方法,其特征在于,优化器封装基类包括基类接口,基类接口包括:参数更新接口、梯度反向传播接口、步进接口、梯度清零接口、获取状态字典接口、加载状态字典接口、优化器封装上下文接口、迭代次数初始化接口、获取学习率接口、获取动量接口、获取参数组接口。7.如权利要求6所述的深度学习优化器封装方法,其特征在于,优化器封装子类与基类接口一致,对不同深度学习后端的优化器进行封装,实现和基类优化器封装相同的接口;优化器封装子类功能包括:开启混合精度训练,由于不同深度学习后端开启混合精度训练的流程不同,根据不同后端选择开启混合精度训练的方式;以及支持梯度累加,并优化分...

【专利技术属性】
技术研发人员:叶浩晨吕成器张文蔚陈恺
申请(专利权)人:上海人工智能创新中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1