本申请公开了一种神经网络模型训练的装置以及方法,属于人工智能技术领域。所述装置包括:确定单元,用于从目标神经网络模型的各反向算子中确定目标反向算子,其中,目标反向算子不包括权重值,和/或,目标反向算子所对应的层与不包括权重值的反向算子所对应的层相邻,目标神经网络模型用于对对象进行分类,目标神经网络模型中的反向算子用于对训练目标神经网络模型的样本对象在训练过程中产生的训练数据进行运算;计算简化单元,用于根据目标反向算子对所进行的反向梯度传播计算进行简化处理。本申请实施例提供的技术方案能够减少反向梯度传播计算的计算量,从而可以提高神经网络模型的训练效率。经网络模型的训练效率。经网络模型的训练效率。
【技术实现步骤摘要】
神经网络模型训练的装置以及方法
[0001]本申请涉及人工智能
,特别是涉及一种神经网络模型训练的装置以及方法。
技术介绍
[0002]当前,神经网络模型在对象分类领域得到了广泛的应用,其中,所谓对象分类指的是确定某些对象的类别,其中,这里所谓的对象指的可以是图像中的拍摄对象、文字对象、音频对象、数据对象等等,比较常见的神经网络模型包括pytorch模型、caffe2/onnx模型等。通常情况下,神经网络模型在使用前需要经过训练,也即是,基于样本对象得到神经网络模型包括的各权重值。一般来说,神经网络模型的训练包括前向计算、loss计算、反向梯度传播计算以及梯度更新四个阶段,而其中,反向梯度传播计算的运算量较大,增加了硬件的IO开销,且对数据传输的带宽也带来了一定的要求,减少了硬件的计算效率。
[0003]当前,如何减少神经网络模型训练的计算量,减少硬件的IO开销,成为了提高硬件的计算效率的关键问题。
技术实现思路
[0004]基于此,本申请实施例提供了一种用于执行神经网络模型训练的装置以及方法,能够减少反向梯度传播计算的计算量,从而可以提高神经网络模型的训练效率。
[0005]第一方面,提供了一种用于执行神经网络模型训练的装置,该装置包括:
[0006]确定单元,用于从目标神经网络模型的各反向算子中确定目标反向算子,其中,各该反向算子与该目标神经网络模型的各个层对应,该目标反向算子不包括权重值,和/或,该目标反向算子所对应的层与不包括权重值的反向算子所对应的层相邻,该目标神经网络模型用于对对象进行分类,该目标神经网络模型中的反向算子用于对训练该目标神经网络模型的样本对象在训练过程中产生的训练数据进行运算;
[0007]计算简化单元,还用于根据该目标反向算子对所进行的反向梯度传播计算进行简化处理,其中,简化处理后的反向梯度传播计算小于未经简化处理的反向梯度传播计算的计算量。
[0008]在其中一个实施例中,该确定单元,具体用于:
[0009]从该目标神经网络模型的第一层对应的反向算子开始,按照该目标神经网络各层的排列顺序,依次检测各层对应的反向算子是否为该目标反向算子;若检测到不为该目标反向算子的反向算子,则停止检测。
[0010]在其中一个实施例中,该确定单元,具体用于:
[0011]对于各层对应的反向算子,检测该反向算子的运算是否为拷贝运算,该拷贝运算的运算过程与权重值不相关;若该反向算子的运算为拷贝运算,则确定该反向算子为该目标反向算子。
[0012]在其中一个实施例中,该确定单元,具体用于:
[0013]对于各层对应的反向算子,获取该反向算子的类型,并根据该反向算子的类型确定该反向算子是否包括权重值;若该反向算子不包括权重值,则确定该反向算子为该目标反向算子。
[0014]在其中一个实施例中,该确定单元,具体用于:
[0015]根据该反向算子的类型查询预先设置的反向算子类型集合,该反向算子类型集合包括多个不包括权重值的反向算子的类型;若该反向算子类型集合中存在该反向算子的类型,则确定该反向算子不包括权重值。
[0016]在其中一个实施例中,该确定单元,具体用于:
[0017]对于各层对应的反向算子,检测该反向算子对应的层的前一层所对应的反向算子是否包括权重值,若否,则确定该反向算子为该目标反向算子。
[0018]在其中一个实施例中,该计算简化单元,具体用于:
[0019]若该目标反向算子不包括权重值,则去除该目标算子所进行的反向梯度传播计算。
[0020]在其中一个实施例中,该计算简化单元,具体用于:
[0021]若该目标反向算子所对应的层与不包括权重值的反向算子所对应的层相邻,则保留该目标反向算子求权值梯度的运算,并去除该目标反向算子求前向输出梯度的运算。
[0022]在其中一个实施例中,该装置还包括权值更新单元;
[0023]该权值更新单元,用于基于求权值梯度的运算的运算结果对该目标反向算子所对应的前向算子包括的权重值进行梯度更新运算,以完成对该目标神经网络模型的一轮训练过程。
[0024]第二方面,提供了一种神经网络模型训练的方法,该方法包括:
[0025]从目标神经网络模型的各反向算子中确定目标反向算子,其中,各该反向算子与该目标神经网络模型的各个层对应,该目标反向算子不包括权重值,和/ 或,该目标反向算子所对应的层与不包括权重值的反向算子所对应的层相邻,该目标神经网络模型用于对对象进行分类,该目标神经网络模型中的反向算子用于对训练该目标神经网络模型的样本对象在训练过程中产生的训练数据进行运算;
[0026]根据该目标反向算子对所进行的反向梯度传播计算进行简化处理,其中,简化处理后的反向梯度传播计算小于未经简化处理的反向梯度传播计算的计算量。
[0027]第三方面,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该计算机程序被该处理器执行时实现如上述第二方面任一所述的神经网络模型训练的方法。
[0028]第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第二方面任一所述的神经网络模型训练的方法。
[0029]本申请实施例提供的技术方案带来的有益效果至少包括:
[0030]通过确定单元从目标神经网络模型各层对应的反向算子中确定目标反向算子,其中,该目标反向算子不包括权重值,和/或,该目标反向算子所对应的层与不包括权重值的反向算子所对应的层相邻,而后,通过计算简化单元根据目标反向算子对所进行的反向梯度传播计算进行简化处理,其中,简化处理后的反向梯度传播计算的计算量小于未经简化处理的反向梯度传播计算的计算量,由于对所进行的反向梯度传播计算进行简化处理,将
反向计算过程中,不影响计算结果的算子计算过程去掉,极大减少了硬件的计算量,减少了计算的IO开销。由于计算的IO减少,进一步降低了对硬件数据传输带宽的要求,同时减少计算带来的功耗。进一步可以提高目标神经网络模型的训练效率,提高对象分类的效率。
附图说明
[0031]图1为本申请实施例提供的一种神经网络模型训练的装置的框图;
[0032]图2为本申请实施例提供的一种神经网络模型训练的装置的框图;
[0033]图3为本申请实施例提供的一种神经网络模型训练的方法的流程图;
[0034]图4为本申请实施例提供的一种组合装置的框图;
[0035]图5为本申请实施例提供的一种计算机设备的框图。
具体实施方式
[0036]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
[0037]应当理解,本披露的权利要求、说明书及附图中的本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种用于执行神经网络模型训练的装置,其特征在于,所述装置包括:确定单元,用于从目标神经网络模型的各反向算子中确定目标反向算子,其中,各所述反向算子与所述目标神经网络模型的各个层对应,所述目标反向算子不包括权重值,和/或,所述目标反向算子所对应的层与不包括权重值的反向算子所对应的层相邻,所述目标神经网络模型用于对对象进行分类,所述目标神经网络模型中的反向算子用于对训练所述目标神经网络模型的样本对象在训练过程中产生的训练数据进行运算;计算简化单元,用于根据所述目标反向算子对所进行的反向梯度传播计算进行简化处理,其中,简化处理后的反向梯度传播计算小于未经简化处理的反向梯度传播计算的计算量。2.根据权利要求1所述的装置,其特征在于,所述确定单元,具体用于:从所述目标神经网络模型的第一层对应的反向算子开始,按照所述目标神经网络各层的排列顺序,依次检测各层对应的反向算子是否为所述目标反向算子;若检测到不为所述目标反向算子的反向算子,则停止检测。3.根据权利要求2所述的装置,其特征在于,所述确定单元,具体用于:对于各层对应的反向算子,检测所述反向算子的运算是否为拷贝运算,其中,所述拷贝运算的运算过程与权重值不相关;若所述反向算子的运算为拷贝运算,则确定所述反向算子为所述目标反向算子。4.根据权利要求2所述的装置,其特征在于,所述确定单元,具体用于:对于各层对应的反向算子,获取所述反向算子的类型,并根据所述反向算子的类型确定所述反向算子是否包括权重值;若所述反向算子不包括权重值,则确定所述反向算子为所述目标反向算子。5.根据权利要求4所述的装置,其特征在于,所述确定单元,具体用于:根据所述反向算子的类型查询预先设置的反向算子类型集合,所述反向算子类型集合包括多个不包括权重值的反向算子的类型;若所述反向...
【专利技术属性】
技术研发人员:ꢀ七四专利代理机构,
申请(专利权)人:寒武纪行歌南京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。