更新参数的方法和装置转让专利

申请号 : CN201810803723.3

文献号 : CN110737446B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨威

申请人 : 杭州海康威视数字技术股份有限公司

摘要 :

本发明公开了一种更新参数的方法和装置,属于计算机技术领域。所述方法包括:获取每个训练节点的性能参数;根据每个训练节点的性能参数,分别确定每个训练节点在预设时长内能够处理的训练样本的数目,作为每个训练节点对应的样本数据批次数目BatchSize;将确定出的BatchSize,分别发送给对应的训练节点。采用本发明,可以提高模型训练的效率。

权利要求 :

1.一种更新参数的方法,其特征在于,所述方法应用在深度学习同步数据并行训练过程中,所述方法包括:

获取每个训练节点的性能参数,所述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数;

根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize,其中,BatchSize是指训练节点一次训练过程中同时处理训练样本的数目;

将确定出的BatchSize,分别发送给对应的训练节点。

2.根据权利要求1所述的方法,其特征在于,所述根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize,包括:根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。

3.根据权利要求1所述的方法,其特征在于,所述将确定出的BatchSize,分别发送给对应的训练节点之后,还包括:

接收所述每个训练节点发送的梯度数据;

计算接收到的梯度数据的平均值;

根据所述平均值,确定待训练的模型的更新参数;

将所述更新参数发送给每个训练节点。

4.一种更新参数的方法,其特征在于,所述方法应用在深度学习同步数据并行训练过程中,所述方法包括:

接收中心节点发送的本训练节点对应的BatchSize,所述BatchSize是所述中心节点采用如权利要求1‑3任一项所述的方法确定出的;

根据所述BatchSize,获取对应数目的训练样本;

根据获取的训练样本,对待训练的模型进行训练处理。

5.根据权利要求4所述的方法,其特征在于,所述训练样本包括样本输入数据和输出参考数据;

所述根据获取的训练样本,对待训练的模型进行训练处理,包括:将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;

根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;

将所述梯度数据发送给所述中心节点;

接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。

6.一种更新参数的装置,其特征在于,所述装置用于执行深度学习同步数据并行训练,所述装置包括:

获取模块,用于获取每个训练节点的性能参数,所述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数;

确定模块,用于根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize,其中,BatchSize是指训练节点一次训练过程中同时处理训练样本的数目;

发送模块,用于将确定出的BatchSize,分别发送给对应的训练节点。

7.根据权利要求6所述的装置,其特征在于,所述确定模块,用于:根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。

8.根据权利要求6所述的装置,其特征在于,所述装置还包括:接收模块,用于将确定出的BatchSize,分别发送给对应的训练节点之后,接收所述每个训练节点发送的梯度数据;

计算模块,用于计算接收到的梯度数据的平均值;

所述确定模块,还用于根据所述平均值,确定待训练的模型的更新参数;

所述发送模块,还用于将所述更新参数发送给每个训练节点。

9.一种更新参数的装置,其特征在于,所述装置用于执行深度学习同步数据并行训练,所述装置包括:

接收模块,用于接收中心节点发送的本训练节点对应的BatchSize,所述BatchSize是所述中心节点采用如权利要求1‑3任一项所述的方法确定出的;

获取模块,用于根据所述BatchSize,获取对应数目的训练样本;

训练模块,用于根据获取的训练样本,对待训练的模型进行训练处理。

10.根据权利要求9所述的装置,其特征在于,所述训练样本包括样本输入数据和输出参考数据;

所述训练模块,用于:

将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;

根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;

将所述梯度数据发送给所述中心节点;

接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。

11.一种更新参数的系统,其特征在于,所述系统用于执行深度学习同步数据并行训练,所述系统包括中心节点和训练节点,其中:所述中心节点,用于获取每个训练节点的性能参数,所述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数;根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize,其中,BatchSize是指训练节点一次训练过程中同时处理训练样本的数据;将确定出的BatchSize,分别发送给对应的训练节点;

所述训练节点,用于接收中心节点发送的本训练节点对应的BatchSize;根据所述BatchSize,获取对应数目的训练样本;根据获取的训练样本,对待训练的模型进行训练处理。

说明书 :

更新参数的方法和装置

技术领域

[0001] 本发明涉及计算机技术领域,特别涉及一种更新参数的方法和装置。

背景技术

[0002] 深度学习由于具有强大的表征能力和拟合能力,成为当前热门的研究方向。深度学习模型在使用前需要进行训练,训练可以采用梯度下降法,训练过程可以如下:将样本数
据输入到待训练模型中,得到训练值,根据训练值与样本数据的真值计算损失函数loss,根
据loss计算待训练模型中的每个参数的梯度数据,根据梯度数据计算每个参数对应的更新
参数,并对待训练模型中的参数进行更新,重复上述过程,直到loss小于预设loss阈值时,
结束训练。
[0003] 为了缩短训练花费的时间,提高训练的效率,以一次训练为例,可以将待训练模型分别存储到参与训练的各个训练节点上,该训练节点可以是终端也可以是服务器。多个训
练节点使用相同数量(可称为BatchSize)的不同样本数据分别计算各个参数的梯度数据,
然后计算多个训练节点得到的每个参数的梯度数据的平均值,然后根据梯度数据的平均值
确定更新参数,然后每个训练节点根据更新参数同时进行参数更新。这种技术可以被称为
深度学习同步数据并行训练技术。
[0004] 在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
[0005] 由于训练节点的配置不同,导致训练节点的计算能力不同,因此,上述各个训练节点同时根据相同BatchSize的样本数据计算梯度数据时,会出现计算能力强的训练节点先
完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,这样,会浪
费训练节点的计算资源,使得训练的效率降低。

发明内容

[0006] 为了解决相关技术的问题,本发明实施例提供了一种更新参数的方法和装置。所述技术方案如下:
[0007] 第一方面,提供了一种更新参数的方法,所述方法包括:
[0008] 获取每个训练节点的性能参数;
[0009] 根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize;
[0010] 将确定出的BatchSize,分别发送给对应的训练节点。
[0011] 可选地,所述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数。
[0012] 可选地,所述根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目
BatchSize,包括:
[0013] 根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位
时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的
数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。
[0014] 可选地,所述将确定出的BatchSize,分别发送给对应的训练节点之后,还包括:
[0015] 接收所述每个训练节点发送的梯度数据;
[0016] 计算接收到的梯度数据的平均值;
[0017] 根据所述平均值,确定待训练的模型的更新参数;
[0018] 将所述更新参数发送给每个训练节点。
[0019] 第二方面,提供了一种更新参数的方法,所述方法包括:
[0020] 接收中心节点发送的本训练节点对应的BatchSize;
[0021] 根据所述BatchSize,获取对应数目的训练样本;
[0022] 根据获取的训练样本,对待训练的模型进行训练处理。
[0023] 可选地,所述训练样本包括样本输入数据和输出参考数据;
[0024] 所述根据获取的训练样本,对待训练的模型进行训练处理,包括:
[0025] 将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;
[0026] 根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;
[0027] 将所述梯度数据发送给所述中心节点;
[0028] 接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。
[0029] 第三方面,提供了一种更新参数的装置,所述装置包括:
[0030] 获取模块,用于获取每个训练节点的性能参数;
[0031] 确定模块,用于根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数
目BatchSize;
[0032] 发送模块,用于将确定出的BatchSize,分别发送给对应的训练节点。
[0033] 可选地,所述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数。
[0034] 可选地,所述确定模块,用于:
[0035] 根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位
时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的
数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。
[0036] 可选地,所述装置还包括:
[0037] 接收模块,用于将确定出的BatchSize,分别发送给对应的训练节点之后,接收所述每个训练节点发送的梯度数据;
[0038] 计算模块,用于计算接收到的梯度数据的平均值;
[0039] 所述确定模块,还用于根据所述平均值,确定待训练的模型的更新参数;
[0040] 所述发送模块,还用于将所述更新参数发送给每个训练节点。
[0041] 第四方面,提供了一种更新参数的装置,所述装置包括:
[0042] 接收模块,用于接收中心节点发送的本训练节点对应的BatchSize;
[0043] 获取模块,用于根据所述BatchSize,获取对应数目的训练样本;
[0044] 训练模块,用于根据获取的训练样本,对待训练的模型进行训练处理。
[0045] 可选地,所述训练样本包括样本输入数据和输出参考数据;
[0046] 所述训练模块,用于:
[0047] 将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;
[0048] 根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;
[0049] 将所述梯度数据发送给所述中心节点;
[0050] 接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。
[0051] 第五方面,提供了一种更新参数的系统,所述系统包括中心节点和训练节点,其中:
[0052] 所述中心节点,用于执行第一方面所述的方法
[0053] 所述训练节点,用于执行第二方面所述的方法。
[0054] 第六方面,提供了一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于
存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述第一方面或第二方面
中任一所述的方法步骤。
[0055] 第七方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或
指令集由所述处理器加载并执行以实现如上述第一方面或第二方面所述的更新参数的方
法。
[0056] 本发明实施例提供的技术方案带来的有益效果至少包括:
[0057] 本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,训练节点根据BatchSize,获取对应数目的训练样本,对待训
练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算
性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一
些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性
能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节点消
耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力
弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提
高了训练的效率。

附图说明

[0058] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
[0059] 图1是本发明实施例提供的一种更新参数的设备交互的流程示意图;
[0060] 图2是本发明实施例提供的一种更新参数的设备交互的流程示意图;
[0061] 图3是本发明实施例提供的一种更新参数的方法的流程图;
[0062] 图4是本发明实施例提供的一种更新参数的方法的流程图;
[0063] 图5是本发明实施例提供的一种更新参数的方法的流程图;
[0064] 图6是本发明实施例提供的一种更新参数的方法的流程图;
[0065] 图7是本发明实施例提供的一种更新参数的装置的结构示意图;
[0066] 图8是本发明实施例提供的一种更新参数的装置的结构示意图;
[0067] 图9是本发明实施例提供的一种更新参数的装置的结构示意图;
[0068] 图10是本发明实施例提供的一种中心节点结构示意图;
[0069] 图11是本发明实施例提供的一种训练节点结构示意图。

具体实施方式

[0070] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0071] 本发明实施例提供了一种更新参数的方法,该方法可以由中心节点和训练节点共同实现。其中,中心节点可以是终端,也可以是服务器;训练节点可以是终端,也可以是服务
器。中心节点和训练节点可以是各自独立的实体设备,如图1所示,中心节点仅用于和训练
节点进行数据交互,本身不参与使用训练样本对待训练的模型进行训练的过程;中心节点
和训练节点也可以是在实体设备中建立的虚拟模块,中心节点可以和训练节点集成在一个
实体设备中,如图2所示,则中心节点和训练节点集成的实体设备既要与其他实体设备中的
训练节点进行数据交互,也要参与使用训练样本对待训练的模型进行训练的过程,本发明
对此不做限定。
[0072] 中心节点可以包括处理器、存储器、收发器等部件。处理器,可以为CPU(Central Processing Unit,中央处理单元)等,可以根据性能参数确定训练节点的BatchSize、获取
每个训练节点的性能参数、计算接收到的梯度数据的平均值等处理。存储器,可以为RAM
(Random Access Memory,随机存取存储器),Flash(闪存)等,可以用于存储接收到的数据、
处理过程所需的数据、处理过程中生成的数据等,如每个训练节点的性能参数、每个训练节
点的BatchSize、训练节点发送的梯度数据、梯度数据的平均值、待训练的模型的更新参数
等。收发器,可以用于与终端或其它服务器进行数据传输,例如,向训练节点发送待训练的
模型的更新参数,向每个训练节点发送对应的BatchSize,收发器可以包括天线、匹配电路、
调制解调器等。中心节点还可以包括屏幕、图像检测部件、音频输出部件和音频输入部件
等。屏幕可以用于显示训练结果。图像检测部件可以是摄像头等。音频输出部件可以是音
箱、耳机等。音频输入部件可以是麦克风等。
[0073] 训练节点可以包括处理器、存储器、收发器等部件。处理器,可以为CPU(Central Processing Unit,中央处理单元)等,可以用于根据BatchSize获取训练样本、根据训练样
本得到训练样本对应的输出数据、计算梯度数据、根据更新参数对待训练参数进行更新等
处理。存储器,可以为RAM(Random Access Memory,随机存取存储器),Flash(闪存)等,可以
用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如BatchSize、训
练样本、训练样本对应的输出数据、待训练参数对应的梯度数据、更新参数等。收发器,可以
用于与终端或其它服务器进行数据传输,例如,向中心节点发送待训练参数对应的梯度数
据,接收中心节点发送的对应的BatchSize,收发器可以包括天线、匹配电路、调制解调器
等。终端还可以包括屏幕、图像检测部件、音频输出部件和音频输入部件等。屏幕可以用于
显示训练结果等。收发器,可以用于与其它设备进行数据传输,例如,接收服务器发送的设
备列表和控制页面,可以包括天线、匹配电路、调制解调器等。
[0074] 本发明实施例提供了一种更新参数的方法,该方法应用于中心节点,如图3所示,该方法的处理流程可以包括如下的步骤:
[0075] 在步骤301中,获取每个训练节点的性能参数。
[0076] 在步骤302中,根据每个训练节点的性能参数,分别确定每个训练节点在预设时长内能够处理的训练样本的数目,作为每个训练节点对应的样本数据批次数目BatchSize。
[0077] 在步骤303中,将确定出的BatchSize,分别发送给对应的训练节点。
[0078] 本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,使得训练节点根据BatchSize,获取对应数目的训练样本,对
待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,
计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize
小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计
算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节
点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算
能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进
而提高了训练的效率。
[0079] 本发明实施例提供了一种更新参数的方法,该方法应用于训练节点,如图4所示,该方法的处理流程可以包括如下的步骤:
[0080] 在步骤401中,接收中心节点发送的本训练节点对应的BatchSize。
[0081] 在步骤402中,根据BatchSize,获取对应数目的训练样本。
[0082] 在步骤403中,根据获取的训练样本,对待训练的模型进行训练处理。
[0083] 本发明实施例中,训练节点获取基于本训练节点的计算性能确定的BatchSize,并根据该BatchSize获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训
练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大
一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时
使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少
的训练样本来计算梯度数据,这样每个训练节点消耗的时间几乎相同,可以避免出现计算
能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处
理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
[0084] 本发明实施例提供了一种更新参数的方法,该方法应用于中心节点和训练节点,如图5所示,该方法的处理流程可以包括如下的步骤:
[0085] 在步骤501中,中心节点获取每个训练节点的性能参数。
[0086] 一个可能的实施例中,用户想要通过中心节点和多个训练节点对待训练的模型进行训练时,可以先启动中心节点和训练节点。启动后,中心节点向每个训练节点发送性能参
数获取请求,接收到性能参数获取请求的训练节点存储并解析性能参数获取请求,然后获
取预先存储的性能参数以及自身的节点标识,将性能参数和节点标识发送给中心节点。中
心节点接收到各训练节点发送的性能参数和节点标识后,将各训练节点的性能参数和节点
标识对应存储,并生成一个参与训练的所有训练节点的节点标识表。
[0087] 可选地,上述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数。
[0088] 其中,CPU型号是指CPU厂商会根据CPU产品的市场定位来给CPU产品确定一个型号以便于分类和管理,一般而言CPU型号可以说是用于区分CPU性能的重要标识。一般来说,一
个CPU型号可以代表固定的CPU的内核数量以及固定的核心频率。
[0089] 处理预设数目个训练样本所耗时长是训练节点预先获得并存储的参数。该参数可以是技术人员预先根据预设数目个训练样本对训练节点进行测试,然后记录处理预设数目
个训练样本所消耗的时长并存储得到的。另外,该参数也可以是在各训练节点启动后,各训
练节点自动获取预设数目个训练样本进行测试,自动记录并存储处理预设数目个训练样本
所消耗的时长。除了上述的方法之外,任一可以获取处理预设数目个训练样本所耗时长的
方案皆可,本发明对此不做限定。
[0090] 在步骤502中,根据每个训练节点的性能参数,中心节点分别确定每个训练节点在预设时长内能够处理的训练样本的数目,作为每个训练节点对应的样本数据批次数目
BatchSize。
[0091] 一个可能的实施例中,获取每个训练节点的性能参数后,中心节点根据每个训练节点的性能参数,确定每个训练节点在预设时长内能够处理的训练样本的数目,作为每个
训练节点对应的BatchSize。这样,可以根据每个训练节点的计算性能,确定它们每次训练
处理的训练样本的数目,计算性能强一些的训练节点每次处理的训练样本的数目多一些,
计算性能弱一些的训练节点每次处理的训练样本的数目少一些,这样,各训练节点处理训
练样本所消耗的时间大致相同,避免出现训练节点每次训练消耗的时间不相同,使得计算
性能强的训练节点需要等待计算性能弱的训练节点完成训练样本处理后,才能进行下一步
操作的情况,避免出现计算资源的浪费,可以进一步提高训练效率。
[0092] 可选地,中心节点可以根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,计算得到每个训练节点的样本数据批次数目BatchSize,相应的处理步骤可
以如下:根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及每
个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据单位时长内处
理训练样本的数目,确定每个训练节点在预设时长内能够处理的训练样本的数目,作为每
个训练节点对应的样本数据批次数目BatchSize。
[0093] 其中,BatchSize用于指示训练节点在使用训练样本训练时,一次训练过程中同时处理训练样本的数目。预设时长相当于每个训练节点使用训练样本完成一次训练所消耗的
时长。
[0094] 一个可能的实施例中,获取每个训练节点的性能参数后,下面以一个训练节点的性能参数为例进行说明。
[0095] 中心节点获取预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,该对应关系为技术人员预先进行大量试验得到的结果,然后以对应关系表的形式存储
在中心节点。基于上述性能参数包括CPU型号、CPU个数、GPU型号、处理预设数目个训练样本
所耗时长中的至少一个参数,因此性能参数与单位时长内处理训练样本的数目的对应关系
表可以是多个表,至少包括CPU型号与单位时长内处理训练样本的数目的对应关系表(如下
表1所示)、CPU个数与单位时长内处理训练样本的数目的对应关系表(如下表2所示)以及
GPU型号与单位时长内处理训练样本的数目的对应关系表(如下表3所示)这三个表。如果性
能参数为处理预设数目个训练样本所耗时长,可以通过算法计算得到单位时长内处理训练
样本的数目,举例来说,假设某一训练节点的性能参数为处理预设数目个训练样本所耗时
长,其中,预设数目为100,所耗时长为10s,而待计算的单位时长内处理训练样本的数目中
的单位时长为20s,则可以计算20s÷10s×100=200,可以得到单位时长内处理训练样本的
数目为200。
[0096] 表1
[0097] CPU型号 单位时长处理训练样本的数目Intel i3 300
Intel i5 380
…… ……
AMD Ryzen 7 2700 330
[0098] 表2
[0099]CPU内核数目 单位时长处理训练样本的数目
2 150
4 270
6 380
8 500
[0100] 表3
[0101]GPU型号 单位时长处理训练样本的数目
Intel(R)HD Graphics 630 350
AMD Radeon(TM)R9 270 480
…… ……
GeForce GTX 760 200
[0102] 中心节点可以确定训练节点的性能参数的种类,然后获取对应的对应关系表,在对应关系表中查询训练节点的性能参数对应的单位时长内处理训练样本的数目。例如,中
心节点确定训练节点的性能参数CPU型号为Intel i5,则中心节点获取表1对应的对应关系
表,并查询Intel i5对应的单位时长内处理训练样本的数目,可以确定该训练节点的性能
参数对应的单位时长内处理训练样本的数目为380。
[0103] 需要说明的是,训练节点的性能参数可以是上述参数中的多种参数共同组成,这种情况下,可以先确定每种参数对应的单位时长内处理训练样本的数目,然后计算确定出
的多个单位时长内处理训练样本的数目的平均值,作为该训练节点的单位时长内处理训练
样本的数目。
[0104] 确定出训练节点的单位时长内处理训练样本的数目后,根据确定的单位时长内处理训练样本的数目,确定该训练节点在预设时长内能够处理的训练样本的数目,例如,确定
出训练节点的单位时长内处理训练样本的数目为380,且单位时长为10s,而上述预设时长
设置为30s,则可以计算30s÷10s×380=1140,即该训练节点在预设时长内能够处理的训
练样本的数目为1140。将计算得到的结果作为该训练节点对应的BatchSize。
[0105] 需要说明的是,上述步骤以中心节点确定一个训练节点的BatchSize为例进行说明,对于每个参与训练的训练节点,中心节点在确定其BatchSize时,均可按照上述处理步
骤进行处理,本发明在此不做赘述。
[0106] 在步骤503中,中心节点将确定出的BatchSize,分别发送给对应的训练节点。
[0107] 一个可能的实施例中,通过上述步骤确定每个训练节点的BatchSize后,中心节点获取训练节点的节点标识以及该训练节点的BatchSize,然后根据该训练节点的节点标识,
获取该训练节点对应的节点地址,根据该节点地址,向该训练节点发送该训练节点对应的
BatchSize。
[0108] 在步骤504中,训练节点接收中心节点发送的本训练节点对应的BatchSize。
[0109] 一个可能的实施例中,通过上述步骤中心节点向各训练节点发送对应的BatchSize后,训练节点接收中心节点发送的BatchSize。然后根据接收到的BatchSize以及
模型初始参数对预先存储的待训练的模型进行初始化。模型初始参数可以预先存储在训练
节点中,使用时训练节点直接从自身的存储器中获取即可。模型初始参数也可以是存储在
中心节点中,训练节点向中心节点发送初始参数获取请求,中心节点根据训练节点发送的
初始参数获取请求,将预先存储的模型初始参数发送给训练节点,训练节点接收并存储模
型初始参数,以此方式得到的。本发明对此不做限制。
[0110] 在步骤505中,根据BatchSize,训练节点获取对应数目的训练样本。
[0111] 一个可能的实施例中,接收到中心节点发送的BatchSize后,训练节点根据BatchSize获取对应数目的训练样本,开始处理训练样本进行训练。
[0112] 需要说明的是,训练样本可以已知的任何一种训练数据集,具体是哪一种训练数据集根据用户的需求进行挑选,且所有参与使用训练样本对模型进行训练的训练节点,使
用的训练样本均不相同。下面提供几种可选的训练节点获取训练样本的方案:
[0113] 方案一、训练样本可以预先存储在中心节点中,当训练节点需要获取训练样本时,向中心节点发送训练样本获取请求,该训练样本获取请求中携带有该训练节点的节点标识
以及BatchSize,中心节点接收到训练样本获取请求后,根据BatchSize获取到对应数目的
训练样本后,根据节点标识向训练节点发送训练样本。其中,为了给每个训练节点分配不同
的训练样本,中心节点可以采用顺序分配算法,按照训练样本集中的顺序给每个训练节点
分配训练样本,也可以采用任何一种随机不重复分配算法,随机给各训练节点分配不重复
的训练样本。或者,中心节点按照训练节点的数目,将存储的训练数据集分段,每段训练数
据集对应一个训练节点。除了上述方案之外,任一可以使中心节点为每个训练节点分配不
同的训练样本的方案皆可,本发明对此不做限制。
[0114] 方案二、训练样本可以预先存储在每个训练节点中,训练节点可以根据BatchSize直接在各自的存储器中获取对应数目的训练样本。其中,为了使每个训练节点获取不同的
训练样本,每个训练节点中存储的训练样本可以是同一个训练数据集中的不同部分,即每
个训练节点中存储的训练样本不相同。或者,在每个训练节点中存储相同的训练数据集,但
不同训练节点中的训练数据集带有不同的分段标识,每个训练节点只能够获取分段标识区
分出来的训练数据集中的部分训练样本。除了上述方案之外,任一可以使每个训练节点获
取不同的训练样本的方案皆可,本发明对此不做限制。
[0115] 方案三、训练样本可以预先存储在独立的存储服务器中,当训练节点需要获取训练样本时,向存储服务器发送训练样本获取请求,该训练样本获取请求中携带有该训练节
点的节点标识以及BatchSize,存储服务器接收到训练样本获取请求后,根据BatchSize获
取到对应数目的训练样本后,根据节点标识向训练节点发送训练样本。存储服务器给每个
训练节点分配不同训练样本的方案可以参考上述方案一的方案,本发明在此不做赘述。通
常来说,存储服务器的处理速度和带宽比中心节点要高一些,因此,将训练样本存储在存储
服务器的方案的训练效率要比将训练样本存储在中心节点的方案的训练效率高。
[0116] 在步骤506中,根据获取的训练样本,训练节点对待训练的模型进行训练处理。
[0117] 一个可能的实施例中,通过上述步骤获取到训练样本后,训练节点使用获取到的训练样本,对待训练的模型进行训练处理。
[0118] 可选地,上述训练样本可以包括样本输入数据和输出参考数据,如图6所示,根据训练样本,训练节点和中心节点对待训练的模型进行训练的处理步骤可以如下:在步骤601
中,训练节点将获取的训练样本中的样本输入数据输入待训练的模型,得到训练样本对应
的输出数据;在步骤602中,根据训练样本中的输出参考数据和输出数据,训练节点确定待
训练的模型中的每个待训练参数对应的梯度数据;在步骤603中,训练节点将梯度数据发送
给中心节点;在步骤604中,中心节点接收训练节点发送的梯度数据;在步骤605中,中心节
点计算接收到的梯度数据的平均值;在步骤606中,根据平均值,中心节点确定待训练的模
型的更新参数;在步骤607中,中心节点将更新参数发送给每个训练节点;在步骤608中,训
练节点接收中心节点发送的更新参数,根据更新参数,对待训练的模型中的每个待训练参
数进行参数更新。
[0119] 一个可能的实施例中,各训练节点根据对应的BatchSize获取对应数目的训练样本后,以一个训练节点与中心节点的交互为例,假设BatchSize的数目为n,即该训练节点一
次获取到n个训练样本,该训练节点将获取到的n个训练样本中的样本输入数据输入到待训
练的模型中,待训练的模型同时对n个样本输入数据进行处理,输出n个输出数据。
[0120] 需要说明的是,对于多个训练节点来说,由于上述步骤是根据每个训练节点的计算性能确定每个训练节点的BatchSize,计算性能强的训练节点同时处理的训练样本的数
目多一些,计算性能弱的训练节点同时处理的训练样本的数目少一些,且根据计算每个训
练节点的BatchSize的过程可以得知,每个训练节点根据BatchSize获取对应数目的训练样
本并同时处理这些训练样本所耗时长为上述的预设时长,即每个训练节点所耗时间相同,
这样可以避免出现计算资源的浪费,可以进一步提高训练效率。
[0121] 然后,根据n个输出数据分别与各自对应的训练样本中的输出参考数据,以及计算损失函数值Loss的计算公式,计算n个输出数据各自对应的Loss。其中,输出数据和输出参
考数据均可以是长向量的形式,且输出数据和输出参考数据的向量长度相同。优选地,可以
根据交叉熵损失函数的计算公式来计算Loss,如下述公式(1)。
[0122]
[0123] 其中,y表示输出参考数据,p表示输出数据,N表示输出参考数据或输出数据的向量长度。
[0124] 计算得到n个Loss后,计算n个Loss的平均值,作为这批训练样本的共同Loss。然后,可以根据共同Loss来判断是否需要继续训练。一种可行的判断方案可以是,判断共同
Loss是否小于预设的Loss阈值,如果共同Loss小于预设的Loss阈值,则说明样本输入数据
对应的输出数据和样本参考数据的差距很小,可以认为该模型已经训练完成,则停止训练,
并将当前模型中的各待训练参数的参数值作为训练好的模型中的参数值,训练过程结束。
另外一种可行的判断方案可以是,判断共同Loss是否收敛,即此次迭代的共同Loss与上次
迭代的共同Loss是否发生变化,如果没有变化,则说明共同Loss收敛,继续训练也不能使共
同Loss变小,因此,停止训练,训练结束。
[0125] 如果共同Loss大于或等于预设的Loss阈值,或共同Loss没收敛,则说明继续训练可以减小共同Loss,使得模型的精度提高,因此,可以继续训练。根据共同Loss以及模型中
每个待训练参数的初始值,计算每个待训练参数的梯度数据,计算梯度数据的计算公式可
以如下述公式(2)所示,然后将得到的梯度数据以及自身的节点标识发送给中心节点。
[0126]
[0127] 其中,Wi为该待训练参数当前的参数值,Loss为共同Loss,ΔWi为梯度数据。
[0128] 中心节点接收到训练节点发送的梯度数据和节点标识后,将接收到的至少一个节点标识与先前生成的节点标识表中的节点标识进行对比,如果接收到的节点标识与节点标
识表中的节点标识相同,则说明参与模型训练的所有训练节点都完成了对训练样本的处理
并返回了梯度数据。中心节点分别计算接收到的所有梯度数据中,每个待训练参数对应的
梯度数据的平均值,最终得到所有待训练参数的梯度数据的平均值。然后,中心节点根据每
个待训练参数的梯度数据的平均值以及预设的学习率,计算每个待训练参数的更新参数,
计算公式可以如下述公式(3)。
[0129]
[0130] 其中,Wi+1为该待训练参数的更新参数,α为预设的学习率, 为梯度数据的平均值。
[0131] 得到每个待训练参数的更新参数后,中心节点将更新参数分别发送给每个训练节点。训练节点接收到更新参数后,将待训练的模型中的各待训练参数更新为接收到的更新
参数。这样,便完成了一次深度学习同步数据并行训练。
[0132] 需要说明的是,除了上述根据共同Loss判断是否需要继续训练之外,还可以根据训练精度或迭代次数来判断。
[0133] 在对模型进行训练的过程中,可以将部分训练样本划分成测试样本,使用测试样本对模型进行测试,将得到的测试数据与对应的输出参考数据进行对比,确定得到的测试
数据是否正确,然后计算得到的测试数据中正确的测试数据与错误的测试数据的比值,即
为训练精度。训练精度表示一个模型输出的正确率。当训练精度达到预设的训练精度阈值
时,说明该模型已经足够精确,无需继续训练,因此当训练精度达到预设的训练精度阈值
时,停止训练,训练过程结束。
[0134] 也可以根据训练精度是否收敛来确定是否需要继续训练,如果训练精度收敛,说明继续训练也无法提升训练精度,因此,当训练精度收敛时停止训练,训练过程结束。
[0135] 另外,还可以预先设定迭代次数阈值,当训练的迭代次数达到迭代次数阈值时停止训练,训练过程结束。除上述判断停止训练的方法外,任一可以有效判断停止训练的方法
皆可,不限于上述例举的几种方法,本发明对此不做限制。
[0136] 重复上述训练过程,直到达到上述停止训练的条件时,停止训练,每个训练节点均得到相同的、训练好的模型。
[0137] 需要说明的是,上述中心节点可以是终端,也可以是服务器。训练节点可以是终端,也可以是服务器。中心节点和训练节点可以是各自独立的实体设备,中心节点仅用于和
训练节点进行数据交互,本身不参与使用训练样本对待训练的模型进行训练的过程;中心
节点和训练节点也可以是在实体设备中建立的虚拟模块,中心节点可以和训练节点集成在
一个实体设备中,则中心节点和训练节点集成的实体设备既要与其他实体设备中的训练节
点进行数据交互,也要参与使用训练样本对待训练的模型进行训练的过程,在这种情况下,
中心节点所在的实体设备与其他训练节点所在的实体设备之间的数据交互可以采用并行
通讯协议。
[0138] 本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,训练节点根据BatchSize,获取对应数目的训练样本,对待训
练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算
性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一
些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性
能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节点消
耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力
弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提
高了训练的效率。
[0139] 基于相同的技术构思,本发明实施例还提供了一种更新参数的装置,该装置可以为上述实施例中的中心节点,如图7所示,该装置包括:获取模块710,确定模块720和发送模
块730。
[0140] 该获取模块710被配置为获取每个训练节点的性能参数;
[0141] 该确定模块720被配置为根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数
据批次数目BatchSize;
[0142] 该发送模块730被配置为将确定出的BatchSize,分别发送给对应的训练节点。
[0143] 可选地,所述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数。
[0144] 可选地,所述确定模块720被配置为:
[0145] 根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位
时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的
数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。
[0146] 可选地,如图8所示,所述装置还包括:
[0147] 接收模块740,被配置为将确定出的BatchSize,分别发送给对应的训练节点之后,接收所述每个训练节点发送的梯度数据;
[0148] 计算模块750,被配置为计算接收到的梯度数据的平均值;
[0149] 所述确定模块720,还被配置为根据所述平均值,确定待训练的模型的更新参数;
[0150] 所述发送模块730,还被配置为将所述更新参数发送给每个训练节点。
[0151] 本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,使得训练节点根据BatchSize,获取对应数目的训练样本,对
待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,
计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize
小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计
算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节
点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算
能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进
而提高了训练的效率。
[0152] 基于相同的技术构思,本发明实施例还提供了一种更新参数的装置,该装置可以为上述实施例中的训练节点,如图9所示,该装置包括:接收模块910,获取模块920和训练模
块930。
[0153] 接收模块910,被配置为接收中心节点发送的本训练节点对应的BatchSize;
[0154] 获取模块920,被配置为根据所述BatchSize,获取对应数目的训练样本;
[0155] 训练模块930,被配置为根据获取的训练样本,对待训练的模型进行训练处理。
[0156] 可选地,所述训练样本包括样本输入数据和输出参考数据;
[0157] 所述训练模块930,被配置为:
[0158] 将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;
[0159] 根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;
[0160] 将所述梯度数据发送给所述中心节点;
[0161] 接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。
[0162] 本发明实施例中,训练节点获取基于本训练节点的计算性能确定的BatchSize,并根据该BatchSize获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训
练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大
一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时
使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少
的训练样本来计算梯度数据,这样每个训练节点消耗的时间几乎相同,可以避免出现计算
能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处
理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
[0163] 基于相同的技术构思,本发明实施例还提供了一种更新参数的系统,所述系统包括中心节点和训练节点,其中:
[0164] 所述中心节点,用于获取每个训练节点的性能参数;根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述
每个训练节点对应的样本数据批次数目BatchSize;将确定出的BatchSize,分别发送给对
应的训练节点;
[0165] 所述训练节点,用于接收中心节点发送的本训练节点对应的BatchSize;根据所述BatchSize,获取对应数目的训练样本;根据获取的训练样本,对待训练的模型进行训练处
理。
[0166] 本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,训练节点根据BatchSize,获取对应数目的训练样本,对待训
练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算
性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一
些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性
能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节点消
耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力
弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提
高了训练的效率。
[0167] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0168] 需要说明的是:上述实施例提供的更新参数的装置在更新参数时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能
模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分
功能。另外,上述实施例提供的更新参数的装置与更新参数的方法实施例属于同一构思,其
具体实现过程详见方法实施例,这里不再赘述。
[0169] 图10是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备可以是上述实施例中的中心节点。该计算机设备1000可因配置或性能不同而产生比较大的差异,
可以包括一个或一个以上处理器(central processing units,CPU)1001和一个或一个以
上的存储器1002,其中,所述存储器1002中存储有至少一条指令,所述至少一条指令由所述
处理器1001加载并执行以实现下述更新参数的方法步骤:
[0170] 获取每个训练节点的性能参数;
[0171] 根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize;
[0172] 将确定出的BatchSize,分别发送给对应的训练节点。
[0173] 可选的,所述至少一条指令由所述处理器1001加载并执行以实现下述方法步骤:
[0174] 根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位
时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的
数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。
[0175] 可选的,所述至少一条指令由所述处理器1001加载并执行以实现下述方法步骤:
[0176] 接收所述每个训练节点发送的梯度数据;
[0177] 计算接收到的梯度数据的平均值;
[0178] 根据所述平均值,确定待训练的模型的更新参数;
[0179] 将所述更新参数发送给每个训练节点。
[0180] 本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,使得训练节点根据BatchSize,获取对应数目的训练样本,对
待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,
计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize
小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计
算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节
点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算
能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进
而提高了训练的效率。
[0181] 图11是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备可以是上述实施例中的训练节点。该计算机设备1100可因配置或性能不同而产生比较大的差异,
可以包括一个或一个以上处理器(central processing units,CPU)1101和一个或一个以
上的存储器1102,其中,所述存储器1102中存储有至少一条指令,所述至少一条指令由所述
处理器1101加载并执行以实现下述更新参数的方法步骤:
[0182] 接收中心节点发送的本训练节点对应的BatchSize;
[0183] 根据所述BatchSize,获取对应数目的训练样本;
[0184] 根据获取的训练样本,对待训练的模型进行训练处理。
[0185] 可选的,所述至少一条指令由所述处理器1101加载并执行以实现下述方法步骤:
[0186] 将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;
[0187] 根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;
[0188] 将所述梯度数据发送给所述中心节点;
[0189] 接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。
[0190] 本发明实施例中,训练节点获取基于本训练节点的计算性能确定的BatchSize,并根据该BatchSize获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训
练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大
一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时
使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少
的训练样本来计算梯度数据,这样每个训练节点消耗的时间几乎相同,可以避免出现计算
能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处
理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
[0191] 在示例性实施例中,还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集
由处理器加载并执行以实现上述实施例中的识别动作类别的方法。例如,所述计算机可读
存储介质可以是ROM、随机存取存储器(RAM)、CD‑ROM、磁带、软盘和光数据存储设备等。
[0192] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读
存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0193] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。