【技术实现步骤摘要】
深度学习优化器封装方法
[0001]本专利技术涉及人工智能
,特别涉及一种深度学习优化器封装方法。
技术介绍
[0002]深度学习任务通常使用优化器(optimizer)来优化神经网络的参数,优化过程一般分为神经网络前向推理、梯度反向传导、参数优化和梯度清零三个步骤。
[0003]不同深度学习任务可能会采取不同的优化功能,例如使用混合精度训练来降低显存占用、提高训练速度;使用梯度累降低算法对显存的要求。使用者通常需要基于使用的深度学习后端自行实现这些训练功能。
[0004]不同深度学习后端(Pytorch、TensorFlow、PaddlePaddle等)的优化器接口有所不同,有着不同的调度逻辑;不同硬件平台(GPU、TPU、IPU等)在对接不同深度学习后端时,神经网络的优化流程也存在不同程度的限制;因此当使用者基于特定后端、特定硬件去实现相应的优化功能时具有较大的学习成本。
技术实现思路
[0005]本专利技术的目的在于提供一种深度学习优化器封装方法,以解决现有的深度学习基于特定后端、特定硬件去实现相应的优化功能具有学习成本高的问题。
[0006]为解决上述技术问题,本专利技术提供一种深度学习优化器封装方法,包括:
[0007]进行优化器封装;通过优化器封装将多个深度学习后端、以及多个硬件的优化器类实例封装成自身的属性,提供通用的的接口,以降低使用者的学习成本;以及根据深度学习后端的特性,在统一接口的前提下,设计不同后端优化器封装的继承层级;
[0008 ...
【技术保护点】
【技术特征摘要】
1.一种深度学习优化器封装方法,其特征在于,包括:进行优化器封装;通过优化器封装将多个深度学习后端、以及多个硬件的优化器封装成通用的接口;以及根据所述多个深度学习后端的特性,在统一接口的前提下,设计不同后端优化器封装的继承层级。2.如权利要求1所述的深度学习优化器封装方法,其特征在于,还包括:提取优化器封装基类,以提供通用的优化器接口;对不同深度学习后端的优化器进行封装,以能够进行梯度反向传递功能、参数更新功能、梯度清零功能、以及梯度累加功能;根据深度学习训练后端的特性,派生出对应后端混合精度训练的优化器封装子类;支持的优化器策略包括混合精度训练和梯度累加。3.如权利要求2所述的深度学习优化器封装方法,其特征在于,还包括:为各个深度学习后端的优化器提供通用的接口;约定基于优化器封装标准的参数更新流程;以及使用优化器封装字典管理多个优化器,以调用通用的接口返回所有优化器的状态信息,所述状态信息包括学习率和动量。4.如权利要求3所述的深度学习优化器封装方法,其特征在于,所述通用的接口包括:参数更新接口,被配置为能够完成一次标准的梯度反向传递、参数更新、梯度清零流程;调用参数更新接口时,根据优化器封装的配置进行梯度累加;以及优化器封装上下文接口,被配置为开启混合精度训练、加速梯度累加的上下文。5.如权利要求4所述的深度学习优化器封装方法,其特征在于,基于优化器封装标准的参数更新流程包括:开启优化器封装上下文接口的上下文,在上下文中进行网络的前向推理,实现混合精度训练或加速梯度累加;以及在优化器封装上下文接口的上下文之外调用参数更新接口,通过优化器封装自带的梯度累加功能、梯度截断功能更新参数。6.如权利要求5所述的深度学习优化器封装方法,其特征在于,优化器封装基类包括基类接口,基类接口包括:参数更新接口、梯度反向传播接口、步进接口、梯度清零接口、获取状态字典接口、加载状态字典接口、优化器封装上下文接口、迭代次数初始化接口、获取学习率接口、获取动量接口、获取参数组接口。7.如权利要求6所述的深度学习优化器封装方法,其特征在于,优化器封装子类与基类接口一致,对不同深度学习后端的优化器进行封装,实现和基类优化器封装相同的接口;优化器封装子类功能包括:开启混合精度训练,由于不同深度学习后端开启混合精度训练的流程不同,根据不同后端选择开启混合精度训练的方式;以及支持梯度累加,并优化分...
【专利技术属性】
技术研发人员:叶浩晨,吕成器,张文蔚,陈恺,
申请(专利权)人:上海人工智能创新中心,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。