一种神经网络协同训练方法、装置以及相关产品制造方法及图纸

技术编号:27567104 阅读:11 留言:0更新日期:2021-03-09 22:12
本申请提供一种神经网络协同训练方法、装置及相关产品。所述产品包括一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现神经网络协同训练方法。本申请提供的技术方案针对在进行神经网络各个网络层的运算过程中以及神经网络训练的过程中数据通信的通信时间长的问题,具有减少通信时间、提高运算效率的优点。提高运算效率的优点。提高运算效率的优点。

【技术实现步骤摘要】
一种神经网络协同训练方法、装置以及相关产品


[0001]本申请涉及信息处理
,具体涉及一种神经网络协同训练方法、装置以及相关产品。

技术介绍

[0002]目前,人工神经网络是所有智能方法中最常见的计算模型之一。在进行神经网络各个网络层的运算过程中以及神经网络训练的过程中,存在数据通信的通信时间以及处理数据的计算时间。
[0003]然而,现有技术中还没有有效减少通信时间,使得数据通信的时间被数据计算的时间覆盖的方案。为了改进性能,有必要采用各种手段来改进神经网络中的网络层运算以及协同训练的过程。

技术实现思路

[0004]本申请实施例提供了一种神经网络协同训练方法、装置及相关产品,可减少数据通信时间,使得通信过程被计算过程覆盖,并提高协同训练的效率。
[0005]第一方面,提供一种协同训练的方法,所述方法应用于包括多个节点的人工智能处理器,所述多个节点包括控制节点以及多个计算节点,所述多个计算节点中的任一计算节点,所述方法包括如下步骤:
[0006]获取第一权值梯度数据;
[0007]在存在来自所述多个计算节点中的第二计算节点的第二权值梯度数据的情况下,在将来自所述第二计算节点的所述第二权值梯度数据与所述第一权值梯度数据进行加和运算得到更新的权值梯度数据的过程中,发送所述更新的权值梯度数据。
[0008]第二方面,提供一种协同训练的装置,所述装置应用于包括多个节点的人工智能处理器,所述多个节点包括控制节点以及多个计算节点,所述多个计算节点中的任一计算节点,所述装置包括:
[0009]获取单元,用于获取第一权值梯度数据;
[0010]第一发送单元,用于在存在来自所述多个计算节点中的第二计算节点的第二权值梯度数据的情况下,在将来自所述第二计算节点的所述第二权值梯度数据与所述第一权值梯度数据进行加和运算得到更新的权值梯度数据的过程中,发送所述更新的权值梯度数据。
[0011]第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的方法。
[0012]第四方面,提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第一方面提供的方法。
[0013]第五方面,提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行第一方面提供
的方法。
[0014]本申请提供的技术方案在协同训练的过程中,符合获取梯度更新数据信号的要求计算节点将本地的权值梯度数据与来自另外的计算节点的权值梯度数据进行加和,在加和的过程中,发送加和的结果,即一边计算一边将发送计算结果,而不是待计算完成后再发送计算结果;不符合获取梯度更新数据信号的要求计算节点在接收其他计算节点的权值梯度数据的过程中发送所接收的权值梯度数据,在接收过程中发送数据,即一边接收数据一边发送数据,而不是待接收完成后再发送;从而,边计算边发送以及边接收边发送,能够有效减少通信时间;并且,在训练的过程中,对多个计算节点进行分组,从而在多个计算节点算力不匹配的时候,可以只同步部分计算节点,从而减少了不同计算节点之间的等待开销,提高运算效率。
附图说明
[0015]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1为一种神经网络构架的结构示意图。
[0017]图2提供了根据本申请一个实施例的多核系统的示意图。
[0018]图3提供了根据本申请一个实施例的协同训练系统的拓扑结果的示意图。
[0019]图4提供了根据本申请一个实施例的协同训练的示意图。
[0020]图5提供了根据本申请一个实施例的动态调整计算节点分组的示意图。
[0021]图6是根据本申请实施例的协同训练方法的流程图。
[0022]图7是根据本申请实施例的协同训练装置的示意图。
[0023]图8是本申请实施例提供的一种电子设备的结构图。
具体实施方式
[0024]下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
[0025]应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0026]还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0027]如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0028]参阅图1,图1提供了一种神经网络构架示意图,如图1所示,神经网络构架可以包括多层结构,该多层结构如图1所示,可以包括:输入层、卷积层1、batchnorm层、卷积层2、中间层(依据不同功能的神经网络构架具有不同的中间层,该中间层可以为至少一层)、卷积层n、全连接层1、激活(例如激活函数:softmax)层。对于神经网络构架,对于计算量较大的层可以称为计算层,例如卷积层、全连接层等等,当然在实际应用中,上述计算层还可以包含其他类型的层,另外,本申请提供的图1中的神经网络构架仅仅是为了举例说明,本申请中的神经网络并不局限如图1所示的构架。
[0029]图2提供了根据本申请一个实施例的多核系统的示意图。如图2所示,该核系统可以为一个神经网络芯片。该多核系统包括16个核(CORE),包含4个存储节点,16个核通过一个环状的NOC与4个存储节点DRAM相连。需要注意的是,该多核系统的核可以为神经网络芯片中的计算核,存储节点的类型可以是任意类型的存储器,例如,动态随机存取存储器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种协同训练的方法,所述方法应用于包括多个节点的人工智能处理器,所述多个节点包括控制节点以及多个计算节点,所述多个计算节点中的任一计算节点,所述方法包括如下步骤:获取第一权值梯度数据;在存在来自所述多个计算节点中的第二计算节点的第二权值梯度数据的情况下,在将来自所述第二计算节点的所述第二权值梯度数据与所述第一权值梯度数据进行加和运算得到更新的权值梯度数据的过程中,发送所述更新的权值梯度数据。2.如权利要求1所述的方法,还包括:在不存在来自所述第二计算节点的权值梯度数据的情况下,发送所述第一权值梯度数据。3.如权利要求2所述的方法,还包括:接收获取梯度更新数据信号;在符合所述获取梯度更新数据信号的要求的情况下,执行如下步骤中的一者:在存在来自所述多个计算节点中的第二计算节点的第二权值梯度数据的情况下,在将来自所述第二计算节点的所述第二权值梯度数据与所述第一权值梯度数据进行加和运算得到更新的权值梯度数据的过程中,发送所述更新的权值梯度数据;或者在不存在来自所述第二计算节点的权值梯度数据的情况下,发送所述第一权值梯度数据。4.如权利要求3所述的方法,还包括:在不符合所述获取梯度更新数据信号的要求且存在来自所述第二计算节点的所述第二权值梯度数据的情况下,在接收所述第二权值梯度数据的过程中,发送所述第二权值梯度数据。5.如权利要求3或4所述的方法,其中,所述获取梯度更新数据信号包括需要相关计算节点的权值梯度数据的计算节点标识以及/或者更新的权值梯度数据的代数的标识。6.如权利要求5所述的方法,其中,所述获取梯度更新数据信号的要求包括:属于所述计算节点标识指示的计算节点;以及/或者所述第一权值梯度数据的代数与所述更新的权值梯度数据的代数之间的差值满足预设值。7.如权利要求1至6任意一者所述的方法,还包括:接收所述控制节点广播的权值数据;保存所述权值数据,其中,所述权值数据用于训练;在存在接收所述权值数据的第三计算节点的情况下,在接收所述权值数据的过程中,将所述权值数据发送至所述第三计算节点。8.如权利要求1至7任意一者所述的方法,还包括:发送获取所述第一权值梯度数据的时间戳,其中,所述时间戳用于将所述多个计算节点进行动态分组。9.如权利要求1至8任意一者所述的方法,其中,所述控制节点包括参数服务节点。10.如权利要求1至9任意一者所述的方法,其中,所述多个节点形成的拓扑结构包括环状、网状、树状,或者其他包括环状的结构。11.如权利要求1至10任意一者所述的方法,其中,所述节点包括神经网络芯片或者所
述神经网络芯片中的计算核。12.一种协同训练的装置,所述装置应用于包括多个节点的人工智能处理器,所述多个节点包括控制节点以及多个计算节点,所述多个计算节点中的任一计算节点,所述装置包括:获取单元,用于获取第一权值梯度数据;第一发送单元,用于在存在来自所述多个计算节点中的第二计算节点的第二权值梯度数据的情况下,在将来自所述第二计算节点的所述第二权值梯度数据与所述第一权值梯度数据进...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:安徽寒武纪信息科技有限公司
类型:发明
国别省市:

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

1