一种神经网络模型训练方法、装置及电子设备与流程

文档序号:14504662阅读:160来源:国知局

本发明涉及模式识别领域,尤其涉及一种神经网络模型训练方法、装置及电子设备。



背景技术:

神经网络(nn:neuralnetworks)模型是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。神经网络模型具有大规模并行、分布式存储和处理、自组织、自适应和自学能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。

现有技术中,往往通过学习训练过程调整神经网络模型的权重值,进而最终获得收敛的神经网络模型。图形处理器(gpu:graphicprocessingunit)往往可以用于大量并行计算,故而现有技术中可以通过gpu来训练神经网络模型,而为了提高训练速度,则往往采用多gpu来训练,然而在采用多gpu异步更新算法训练神经网络模型时会存在梯度值过时的问题,梯度值过会影响模型的收敛性(例如:导致无法收敛、或者收敛缓慢等等),从而影响对神经网络模型训练的稳定性。



技术实现要素:

本发明提供一种神经网络模型训练方法、装置及电子设备,以解决现有技术中通过多计算设备异步更新算法训练神经网络模型时,训练的稳定性较低的技术问题。

第一方面,本发明实施例提供一种神经网络模型训练方法,包括:

在对神经网络模型进行训练的过程中,确定出至少两个第一计算设备训练的已训练轮数;

判断所述已训练轮数是否满足预设条件;

如果所述已训练轮数满足所述预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新。

结合第一方面,在第一种可能的实现方式中,所述判断所述已训练轮数是否满足预设条件,包括:

判断所述已训练轮数是否为同步周期的倍数;

其中,如果判断结果为是,确定出所述已训练轮数满足所述预设条件。

结合第一方面,在第二种可能的实现方式中,所述确定出至少两个第一计算设备训练的已训练轮数,包括:通过控制任务确定出所述至少两个第一计算设备训练的已训练轮数;

所述判断所述已训练轮数是否满足预设条件,包括:通过所述控制任务判断所述已训练轮数是否满足所述预设条件。

结合第一方面,在第三种可能的实现方式中,所述基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新,包括:

通过控制任务向每个所述第一计算设备发送更新指令,以使每个所述第一计算设备在接收到所述更新指令之后,拷贝所述主模型的所述权重值;或者,

通过控制任务将所述主模型的权重值发送至每个所述第一计算设备,以使每个所述第一计算设备通过所述主模型的权重值覆盖所述副本的权重值。

结合第一方面或第一方面的第一至三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,在对神经网络模型进行训练的过程中,所述方法还包括:

每个所述第一计算设备在得到训练的权重值梯度后,通过所述权重值梯度异步更新所述主模型的权重值以及对应的第一计算设备的所述副本的权重值。

结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述通过所述权重值梯度异步更新所述主模型的权重值以及对应的第一计算设备的所述副本的权重值,包括:

通过所述权重值梯度对所述主模型的权重值进行更新;

通过更新后的所述主模型的权重值替换所述副本的权重值。

结合第一方面或第一方面的第一至三种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:

在对所述神经网络模型训练的初始阶段,随机确定主模型的权重值;

根据随机确定的主模型,通过至少两个第二计算设备进行训练,得到初始模型;

每个所述第一计算设备拷贝所述初始模型的副本,从而进行所述神经网络模型的训练。

结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述根据随机确定的主模型,通过至少两个第二计算设备进行训练,得到初始模型,包括:

通过所述至少两个第二计算设备拷贝所述随机确定的主模型的副本;

通过所述至少两个计算设备对所述随机确定的主模型的副本进行训练,获得训练结果;

基于所述训练结果对所述随机确定的主模型的权重值进行更新获得所述初始模型。

第二方面,本发明实施例提供一种神经网络模型训练装置,包括:

第一确定模块,用于在对神经网络模型进行训练的过程中,确定出至少两个第一计算设备训练的已训练轮数;

判断模块,用于判断所述已训练轮数是否满足预设条件;

第一更新模块,用于如果所述已训练轮数满足所述预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新。

结合第二方面,在第一种可能的实现方式中,所述判断模块,用于:

判断所述已训练轮数是否为同步周期的倍数;

其中,如果判断结果为是,确定出所述已训练轮数满足所述预设条件。

结合第二方面,在第二种可能的实现方式中,所述第一确定模块,用于:通过控制任务确定出所述至少两个第一计算设备训练的已训练轮数;

所述判断模块,用于:通过所述控制任务判断所述已训练轮数是否满足所述预设条件。

结合第二方面,在第三种可能的实现方式中,所述第一更新模块,用于:

通过控制任务向每个第一计算设备发送更新指令,以使每个所述第一计算设备在接收到所述更新指令之后,拷贝所述主模型的所述权重值;或者,

通过控制任务将所述主模型的权重值发送至每个所述第一计算设备,以使每个所述第一计算设备通过所述主模型的权重值覆盖所述副本的权重值。

结合第二方面或第二方面的第一至三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:

第二更新模块,用于每个所述第一计算设备在得到训练的权重值梯度后,通过所述权重值梯度异步更新所述主模型的权重值以及对应的第一计算设备的所述副本的权重值。

结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述第二更新模块,包括:

第一更新单元,用于通过所述权重值梯度对所述主模型的权重值进行更新;

替换单元,用于通过更新后的所述主模型的权重值替换所述副本的权重值。

结合第二方面或第二方面的第一至三种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,所述装置还包括:

第二确定模块,用于在对所述神经网络模型训练的初始阶段,随机确定主模型的权重值;

第一训练模块,用于根据随机确定的主模型,通过至少两个第二计算设备进行训练,得到初始模型;

第二训练模块,用于通过每个所述第一计算设备拷贝所述初始模型的副本,从而进行所述神经网络模型的训练。

结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述第一训练模块,包括:

拷贝单元,用于通过所述至少两个第二计算设备拷贝所述随机确定的主模型的副本;

训练单元,用于通过所述至少两个计算设备对所述随机确定的主模型的副本进行训练,获得训练结果;

第二更新单元,用于基于所述训练结果对所述随机确定的主模型的权重值进行更新获得所述初始模型。

第三方面,本发明实施例提供一种电子设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

在对神经网络模型进行训练的过程中,确定出至少两个第一计算设备训练的已训练轮数;

判断所述已训练轮数是否满足预设条件;

如果所述已训练轮数满足所述预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新。

结合第三方面,在第一种可能的实现方式中,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

判断所述已训练轮数是否为同步周期的倍数;

其中,如果判断结果为是,确定出所述已训练轮数满足所述预设条件。

结合第三方面,在第二种可能的实现方式中,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

通过控制任务确定出所述至少两个第一计算设备训练的已训练轮数;

通过所述控制任务判断所述已训练轮数是否满足所述预设条件。

结合第三方面,在第三种可能的实现方式中,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

通过控制任务向每个第一计算设备发送更新指令,以使每个所述第一计算设备在接收到所述更新指令之后,拷贝所述主模型的所述权重值;或者,

通过控制任务将所述主模型的权重值发送至每个所述第一计算设备,以使每个所述第一计算设备通过所述主模型的权重值覆盖所述副本的权重值。

结合第三方面或第三方面的第一至三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

每个所述第一计算设备在得到训练的权重值梯度后,通过所述权重值梯度异步更新所述主模型的权重值以及对应的第一计算设备的所述副本的权重值。

结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

通过所述权重值梯度对所述主模型的权重值进行更新;

通过更新后的所述主模型的权重值替换所述副本的权重值。

结合第三方面或第三方面的第一至三种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

在对所述神经网络模型训练的初始阶段,随机确定主模型的权重值;

根据随机确定的主模型,通过至少两个第二计算设备进行训练,得到初始模型;

每个所述第一计算设备拷贝所述初始模型的副本,从而进行所述神经网络模型的训练。

结合第三方面的第六种可能的实现方式,在第七种可能的实现方式中,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

通过所述至少两个第二计算设备拷贝所述随机确定的主模型的副本;

通过所述至少两个计算设备对所述随机确定的主模型的副本进行训练,获得训练结果;

基于所述训练结果对所述随机确定的主模型的权重值进行更新获得所述初始模型。

本发明有益效果如下:

由于在本发明实施例中,在对神经网络模型进行训练的过程中,如果至少两个第一计算设备训练的已训练轮数满足预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新,从而能够在不显著增加训练时间的情况下,增加了神经网络模型的权重值的同步策略,保证了主模型以及主模型的各个副本的权重值的一致性,从而达到了增加对神经网络模型训练的稳定性的技术效果。

附图说明

图1为本发明实施例的神经网络模型训练方法的流程图;

图2为本发明实施例的神经网络模型训练装置的结构图;

图3为本发明实施例中实施神经网络模型训练方法的客户端设备的结构图;

图4为本发明实施例中实施神经网络模型训练方法的服务器的结构图。

具体实施方式

本发明提供一种神经网络模型训练方法、装置及电子设备,以解决现有技术中通过多计算设备异步更新算法训练神经网络模型时,训练的稳定性较低的技术问题。

本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:

在对神经网络模型进行训练的过程中,如果至少两个第一计算设备训练的已训练轮数满足预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新,从而能够在不显著增加训练时间的情况下,增加了神经网络模型的权重值的同步策略,保证了主模型以及主模型的各个副本的权重值的一致性,从而达到了增加对神经网络模型训练的稳定性的技术效果。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。

第一方面,本发明实施例提供一种神经网络模型训练方法,请参考图1,包括:

步骤s101:在对神经网络模型进行训练的过程中,确定出至少两个第一计算设备训练的已训练轮数;

步骤s102:判断所述已训练轮数是否满足预设条件;

步骤s103:如果所述已训练轮数满足所述预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新。

举例来说,该方案可以应用于并行训练系统,该并行训练系统由一个控制任务和多个运算任务构成,控制任务负责控制整个并行训练系统的训练流程,控制每个运算任务的状态,控制任务和运算任务之间可以通过消息进行通信,例如:控制任务与运算任务之间可以用tcp/ip(transmissioncontrolprotocol/internetprotocol:网络通讯协议)来进行进程间通信,控制任务可以监听与运算任务之间传输信息的端口,运算任务可以通过tcpsocket(tcp套接字)向这个端口发消息。每个运算任务可以独占一个计算设备(例如:gpu),需要训练的神经网络模型的参数(例如:权重值)保存在共享存储内存空间中,下文中称为主模型。每个运算任务存在对应的一个主模型的副本,每个运算任务处理整个训练数据集的一部分。数据并行化的方式需要组合各个运算任务的结果,并且在运算任务间同步模型的权重值。其中,控制任务例如为:控制进程、控制线程等等,运算任务例如为:运算进程、运算线程等等。

该并行训练系统可以由一台多核、多计算设备的主机组成,该并行训练系统也可以由多台主机构成,分别为:用于运行控制任务的主控主机、以及用于运行运算任务的运算主机等等,对于该并行训练系统采用何种结构,本发明实施例不作限制。

神经网络模型的训练是个迭代的过程,一般随机初始化得到模型n1,然后在数据上迭代一轮,得到模型n2,以此类推在数据上迭代c轮得到nc,这里的n1、n2、nc指的神经网络训练中不同阶段得到的中间模型,其中c为正整数。该神经网络模型例如为:前馈神经网络模型、递归神经网络模型等等。

基于该神经网络模型应用于不同的应用场景,训练该神经网络模型所采用的训练数据也不同,例如:如果该神经网络模型用于机器翻译,则该训练数据可以为机器翻译用的训练数据,例如:源语言和目标语言的句对,一个句对如下:

源语言:“早上好!”

目标语言:“goodmorning!”

在具体实施过程中,在初始阶段,可以首先设置训练参数,训练参数例如包括:同步周期l、总训练数据块数z,z=m*n,m表示预设训练总轮数,n表示将训练数据所划分的数据块的数量,l例如为:10、12等等,m例如为:8、10等等,n例如为:100、500等等,当然,还可以为其他值,本发明实施不作限制。

另外,在训练初始阶段控制任务需要选取主模型的权重值,进而获得初始模型,其中,该主模型的权重值可以在初始阶段随机选择,作为一种可选的实施例,也可以通过以下方式确定:在对所述神经网络模型训练的初始阶段,随机确定主模型的权重值;根据所述随机确定的主模型,通过至少两个第二计算设备进行训练,得到初始模型。在确定出初始模型之后,每个所述第一计算设备拷贝所述初始模型的副本,从而进行所述神经网络模型的训练。

举例来说,可以通过至少两个第二计算设备(例如:两块gpu、三块gpu等等)对神经网络模型进行“热启动”训练,也即通过至少两个第二计算设备先基于训练数据训练1轮以内(例如:1轮、0.5轮、0.3轮等等),基于该训练过程获得一个初始模型,该初始模型即为后续训练过程中的主模型,然后每个第一计算设备都拷贝该初始模型的副本,在各个第一计算设备拷贝该初始模型的副本之后,就可以进行神经网络模型的训练。通过至少两个第二计算设备先进行1轮以内的热启动训练,能够使神经网络模型更容易收敛,并且通过多个第二计算设备训练能够降低热启动阶段所耗费的时间,提高训练速率。其中,第二计算设备与第一计算设备可以为完全不同的计算设备,第二计算设备也可以为第一计算设备中的部分计算设备,本发明实施例不作限制。

在初始阶段,还需要初始化已训练数据计数器c的值为0,并且将整个数据集d(也即:训练数据)平均分为n块,表示为d[0],d[1],…,d[n-1]。

在训练阶段,控制任务等待第一计算设备对应的运算任务发送的消息。

运算任务在需要启动训练时,发送“请求训练数据”消息给控制任务,控制任务在接收到该“请求训练数据”消息之后,为运算任务分配训练数据块,该训练数据块的编号为:d[cmodn],其中mod为取模操作;

运算任务在获得该训练数据块d[cmodn]之后,用这部分训练数据块进行训练。其中,可以通过多种算法进行梯度更新,例如:asgd(asynchronousstochasticgradientdescent:异步随机梯度下降)算法、easgd(弹性平均随机梯度下降)算法等等。

作为一种可选的实施例,每个所述第一计算设备在得到训练的权重值梯度后,通过所述权重值梯度异步更新所述主模型的权重值以及对应的第一计算设备的所述副本的权重值。

例如:每个第一计算设备在训练时可以得到训练数据块上的损失函数e(w),然后计算获得该损失函数的权重值梯度例如:可以通过反向传播算法计算该权重值梯度然后通过所述权重值梯度对所述主模型的权重值进行更新;通过更新后的所述主模型的权重值替换所述副本的权重值。

其中,可以通过以下公式对主模型的权重值进行更新:

其中,表示更新后的主模型的权重值,表示更新前的主模型的权重值,η表示学习率,其通常为实验所获得的经验值,表示梯度参数。

也就是说,第一计算设备每获得一次权重值梯度,则通过该权重值梯度对主模型进行更新,然后通过主模型对第一计算设备的副本进行更新。

在训练结束阶段,第一计算设备对应的运算任务可以向控制任务发送一条“已训练”消息,控制任务在接收到该“已训练”消息之后,将已训练数据计数器c的值+1。

相对于热启动阶段,在训练阶段可以采用更多的第一计算设备(例如:gpu)进行并行训练,例如:8块、10块、12块等等,以提高训练效率。

步骤s101中,可以通过控制任务获取已训练轮数,其中,控制任务可以直接读取已训练数据计数器c的计数值,并将该计数值作为已训练轮数,然后执行步骤s102。当然,还可以通过其他任务(例如:运算任务或者另外设置的处理程序)执行步骤s101和步骤s102,本发明实施例不作限制。

步骤s102中,预设条件可以包含多种条件,例如:①判断所述已训练轮数是否为同步周期l的倍数;其中,如果判断结果为是,确定出所述已训练轮数满足所述预设条件,该同步周期例如为:10、12等等;②判断所述已训练轮数对同步周期取模的余数是否为预设值,如果为预设值,说明满足预设条件,该预设值例如为:3、5等等。

步骤s103中,可以通过多种方式对主模型的副本的权重值进行同步更新,下面列举其中的两种进行介绍,当然,在具体实施过程中,不限于以下两种情况。

第一种,所述基于所述神经网络模型的主模型的权重值对每个第一计算设备的所述主模型的副本的权重值进行同步更新,包括:通过所述控制任务向每个所述第一计算设备发送更新指令,以使每个所述第一计算设备在接收到所述更新指令之后,拷贝所述主模型的所述权重值。

举例来说,可以通过控制任务向所有第一计算设备发送“同步所有模型参数”的消息(该消息即为更新指令),第一计算设备在接收到该消息之后,等所有第一计算设备完成正在进行的计算后,每个第一计算设备从主模型的权重值的存储区域拷贝主模型的权重值到副本,从而使所有副本的权重值与主模型的权重值相同。

第二种,所述基于所述神经网络模型的主模型的权重值对每个第一计算设备的所述主模型的副本的权重值进行同步更新,包括:通过所述控制任务将所述主模型的权重值发送至每个所述第一计算设备,以使每个所述第一计算设备通过所述主模型的权重值覆盖所述副本的权重值。

举例来说,可以通过控制任务从主模型的权重值的存储区域直接获取主模型的权重值,然后将其发送至各个第一计算设备,各个第一计算设备直接将控制任务发送至的主模型的权重值覆盖副本的权重值,从而使所有副本的权重值与主模型的权重值相同。

在具体实施过程中,如果已训练数据计数器c的计数值超过初始阶段设置的总训练数据块数z,则控制任务可以指示各第一计算设备结束训练,例如:控制任务向第一计算设备发送“结束”消息,第一计算设备在接收到该消息之后,则停止训练过程。

第二方面,基于同一发明构思,本发明实施例提供一种神经网络模型训练装置,请参考图2,包括:

第一确定模块20,用于在对神经网络模型进行训练的过程中,确定出至少两个第一计算设备训练的已训练轮数;

判断模块21,用于判断所述已训练轮数是否满足预设条件;

第一更新模块22,用于如果所述已训练轮数满足所述预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新。

可选的,所述判断模块21,用于:

判断所述已训练轮数是否为同步周期的倍数;

其中,如果判断结果为是,确定出所述已训练轮数满足所述预设条件。

可选的,所述第一确定模块20,用于:通过控制任务确定出所述至少两个第一计算设备训练的已训练轮数;

所述判断模块21,用于:通过所述控制任务判断所述已训练轮数是否满足所述预设条件。

可选的,所述第一更新模块22,用于:

通过控制任务向每个第一计算设备发送更新指令,以使每个所述第一计算设备在接收到所述更新指令之后,拷贝所述主模型的所述权重值;或者,

通过控制任务将所述主模型的权重值发送至每个所述第一计算设备,以使每个所述第一计算设备通过所述主模型的权重值覆盖所述副本的权重值。

可选的,所述装置还包括:

第二更新模块,用于每个所述第一计算设备在得到训练的权重值梯度后,通过所述权重值梯度异步更新所述主模型的权重值以及对应的第一计算设备的所述副本的权重值。

可选的,所述第二更新模块,包括:

第一更新单元,用于通过所述权重值梯度对所述主模型的权重值进行更新;

替换单元,用于通过更新后的所述主模型的权重值替换所述副本的权重值。

可选的,所述装置还包括:

第二确定模块,用于在对所述神经网络模型训练的初始阶段,随机确定主模型的权重值;

第一训练模块,用于根据随机确定的主模型,通过至少两个第二计算设备进行训练,得到初始模型;

第二训练模块,用于通过每个所述第一计算设备拷贝所述初始模型的副本,从而进行所述神经网络模型的训练。

可选的,所述第一训练模块,包括:

拷贝单元,用于通过所述至少两个第二计算设备拷贝所述随机确定的主模型的副本;

训练单元,用于通过所述至少两个计算设备对所述随机确定的主模型的副本进行训练,获得训练结果;

第二更新单元,用于基于所述训练结果对所述随机确定的主模型的权重值进行更新获得所述初始模型。

由于本发明第二方面所介绍的装置,为实施本发明实施例第一方面所介绍的神经网络模型训练方法所采用的装置,基于本发明实施例第一方面所介绍的神经网络模型训练方法,本领域所属技术人员能够了解本发明实施例第二方面所介绍的装置的具体结构及变形,故而在此不再赘述,凡是实施本发明实施例第一方面所介绍的神经网络模型训练方法所采用的装置都属于本发明所欲保护的范围。

第三方面,基于同一发明构思,本发明实施例提供一种电子设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

在对神经网络模型进行训练的过程中,确定出至少两个第一计算设备训练的已训练轮数;

判断所述已训练轮数是否满足预设条件;

如果所述已训练轮数满足所述预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新。

举例来说,该电子设备例如为客户端设备或者服务器。

可选的,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

判断所述已训练轮数是否为同步周期的倍数;

其中,如果判断结果为是,确定出所述已训练轮数满足所述预设条件。

可选的,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

通过控制任务确定出所述至少两个第一计算设备训练的已训练轮数;

通过所述控制任务判断所述已训练轮数是否满足所述预设条件。

可选的,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

通过控制任务向每个第一计算设备发送更新指令,以使每个所述第一计算设备在接收到所述更新指令之后,拷贝所述主模型的所述权重值;或者,

通过控制任务将所述主模型的权重值发送至每个所述第一计算设备,以使每个所述第一计算设备通过所述主模型的权重值覆盖所述副本的权重值。

可选的,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

每个所述第一计算设备在得到训练的权重值梯度后,通过所述权重值梯度异步更新所述主模型的权重值以及对应的第一计算设备的所述副本的权重值。

可选的,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

通过所述权重值梯度对所述主模型的权重值进行更新;

通过更新后的所述主模型的权重值替换所述副本的权重值。

可选的,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

在对所述神经网络模型训练的初始阶段,随机确定主模型的权重值;

根据随机确定的主模型,通过至少两个第二计算设备进行训练,得到初始模型;

每个所述第一计算设备拷贝所述初始模型的副本,从而进行所述神经网络模型的训练。

可选的,所述电子设备还经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

通过所述至少两个第二计算设备拷贝所述随机确定的主模型的副本;

通过所述至少两个计算设备对所述随机确定的主模型的副本进行训练,获得训练结果;

基于所述训练结果对所述随机确定的主模型的权重值进行更新获得所述初始模型。

由于本发明第三方面所介绍的电子设备,为实施本发明实施例第一方面所介绍的神经网络模型训练方法所采用的电子设备,基于本发明实施例第一方面所介绍的神经网络模型训练方法,本领域所属技术人员能够了解本发明实施例第三方面所介绍的电子设备的具体结构及变形,故而在此不再赘述,凡是实施本发明实施例第一方面所介绍的神经网络模型训练方法所采用的电子设备都属于本发明所欲保护的范围。

图3是根据一示例性实施例示出的一种实施神经网络模型训练方法的客户端设备800的框图。例如,客户端设备800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图3,客户端设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(i/o)的接口812,传感器组件814,以及通信组件816。

处理组件802通常控制客户端设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理部件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。

存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在客户端设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

电力组件806为客户端设备800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为客户端设备800生成、管理和分配电力相关联的组件。

多媒体组件808包括在所述客户端设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当客户端设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当客户端设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。

i/o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件814包括一个或多个传感器,用于为客户端设备800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为客户端设备800的显示器和小键盘,传感器组件814还可以检测客户端设备800或客户端设备800一个组件的位置改变,用户与客户端设备800接触的存在或不存在,客户端设备800方位或加速/减速和客户端设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件816被配置为便于客户端设备800和其他设备之间有线或无线方式的通信。客户端设备800可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信部件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在示例性实施例中,客户端设备800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由客户端设备800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由客户端设备的处理器执行时,使得客户端设备能够执行一种神经网络模型训练方法,所述方法包括:

在对神经网络模型进行训练的过程中,确定出至少两个第一计算设备训练的已训练轮数;

判断所述已训练轮数是否满足预设条件;

如果所述已训练轮数满足所述预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新。

图4是本发明实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。

服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行一种神经网络模型训练方法,所述方法包括:

在对神经网络模型进行训练的过程中,确定出至少两个第一计算设备训练的已训练轮数;

判断所述已训练轮数是否满足预设条件;

如果所述已训练轮数满足所述预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新。

本发明一个或多个实施例,至少具有以下有益效果:

由于在本发明实施例中,在对神经网络模型进行训练的过程中,如果至少两个第一计算设备训练的已训练轮数满足预设条件,基于所述神经网络模型的主模型的权重值对每个第一计算设备对应的所述主模型的副本的权重值进行同步更新,从而能够在不显著增加训练时间的情况下,增加了神经网络模型的权重值的同步策略,保证了主模型以及主模型的各个副本的权重值的一致性,从而达到了增加对神经网络模型训练的稳定性的技术效果。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1