CN110737446B - 更新参数的方法和装置 - Google Patents

更新参数的方法和装置 Download PDF

Info

Publication number
CN110737446B
CN110737446B CN201810803723.3A CN201810803723A CN110737446B CN 110737446 B CN110737446 B CN 110737446B CN 201810803723 A CN201810803723 A CN 201810803723A CN 110737446 B CN110737446 B CN 110737446B
Authority
CN
China
Prior art keywords
training
node
batchsize
data
samples
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810803723.3A
Other languages
English (en)
Other versions
CN110737446A (zh
Inventor
杨威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201810803723.3A priority Critical patent/CN110737446B/zh
Priority to PCT/CN2019/096774 priority patent/WO2020015734A1/zh
Publication of CN110737446A publication Critical patent/CN110737446A/zh
Application granted granted Critical
Publication of CN110737446B publication Critical patent/CN110737446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

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

Description

更新参数的方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种更新参数的方法和装置。
背景技术
深度学习由于具有强大的表征能力和拟合能力,成为当前热门的研究方向。深度学习模型在使用前需要进行训练,训练可以采用梯度下降法,训练过程可以如下:将样本数据输入到待训练模型中,得到训练值,根据训练值与样本数据的真值计算损失函数loss,根据loss计算待训练模型中的每个参数的梯度数据,根据梯度数据计算每个参数对应的更新参数,并对待训练模型中的参数进行更新,重复上述过程,直到loss小于预设loss阈值时,结束训练。
为了缩短训练花费的时间,提高训练的效率,以一次训练为例,可以将待训练模型分别存储到参与训练的各个训练节点上,该训练节点可以是终端也可以是服务器。多个训练节点使用相同数量(可称为BatchSize)的不同样本数据分别计算各个参数的梯度数据,然后计算多个训练节点得到的每个参数的梯度数据的平均值,然后根据梯度数据的平均值确定更新参数,然后每个训练节点根据更新参数同时进行参数更新。这种技术可以被称为深度学习同步数据并行训练技术。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
由于训练节点的配置不同,导致训练节点的计算能力不同,因此,上述各个训练节点同时根据相同BatchSize的样本数据计算梯度数据时,会出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,这样,会浪费训练节点的计算资源,使得训练的效率降低。
发明内容
为了解决相关技术的问题,本发明实施例提供了一种更新参数的方法和装置。所述技术方案如下:
第一方面,提供了一种更新参数的方法,所述方法包括:
获取每个训练节点的性能参数;
根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize;
将确定出的BatchSize,分别发送给对应的训练节点。
可选地,所述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数。
可选地,所述根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize,包括:
根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。
可选地,所述将确定出的BatchSize,分别发送给对应的训练节点之后,还包括:
接收所述每个训练节点发送的梯度数据;
计算接收到的梯度数据的平均值;
根据所述平均值,确定待训练的模型的更新参数;
将所述更新参数发送给每个训练节点。
第二方面,提供了一种更新参数的方法,所述方法包括:
接收中心节点发送的本训练节点对应的BatchSize;
根据所述BatchSize,获取对应数目的训练样本;
根据获取的训练样本,对待训练的模型进行训练处理。
可选地,所述训练样本包括样本输入数据和输出参考数据;
所述根据获取的训练样本,对待训练的模型进行训练处理,包括:
将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;
根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;
将所述梯度数据发送给所述中心节点;
接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。
第三方面,提供了一种更新参数的装置,所述装置包括:
获取模块,用于获取每个训练节点的性能参数;
确定模块,用于根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize;
发送模块,用于将确定出的BatchSize,分别发送给对应的训练节点。
可选地,所述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数。
可选地,所述确定模块,用于:
根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。
可选地,所述装置还包括:
接收模块,用于将确定出的BatchSize,分别发送给对应的训练节点之后,接收所述每个训练节点发送的梯度数据;
计算模块,用于计算接收到的梯度数据的平均值;
所述确定模块,还用于根据所述平均值,确定待训练的模型的更新参数;
所述发送模块,还用于将所述更新参数发送给每个训练节点。
第四方面,提供了一种更新参数的装置,所述装置包括:
接收模块,用于接收中心节点发送的本训练节点对应的BatchSize;
获取模块,用于根据所述BatchSize,获取对应数目的训练样本;
训练模块,用于根据获取的训练样本,对待训练的模型进行训练处理。
可选地,所述训练样本包括样本输入数据和输出参考数据;
所述训练模块,用于:
将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;
根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;
将所述梯度数据发送给所述中心节点;
接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。
第五方面,提供了一种更新参数的系统,所述系统包括中心节点和训练节点,其中:
所述中心节点,用于执行第一方面所述的方法
所述训练节点,用于执行第二方面所述的方法。
第六方面,提供了一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述第一方面或第二方面中任一所述的方法步骤。
第七方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述第一方面或第二方面所述的更新参数的方法。
本发明实施例提供的技术方案带来的有益效果至少包括:
本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,训练节点根据BatchSize,获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种更新参数的设备交互的流程示意图;
图2是本发明实施例提供的一种更新参数的设备交互的流程示意图;
图3是本发明实施例提供的一种更新参数的方法的流程图;
图4是本发明实施例提供的一种更新参数的方法的流程图;
图5是本发明实施例提供的一种更新参数的方法的流程图;
图6是本发明实施例提供的一种更新参数的方法的流程图;
图7是本发明实施例提供的一种更新参数的装置的结构示意图;
图8是本发明实施例提供的一种更新参数的装置的结构示意图;
图9是本发明实施例提供的一种更新参数的装置的结构示意图;
图10是本发明实施例提供的一种中心节点结构示意图;
图11是本发明实施例提供的一种训练节点结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种更新参数的方法,该方法可以由中心节点和训练节点共同实现。其中,中心节点可以是终端,也可以是服务器;训练节点可以是终端,也可以是服务器。中心节点和训练节点可以是各自独立的实体设备,如图1所示,中心节点仅用于和训练节点进行数据交互,本身不参与使用训练样本对待训练的模型进行训练的过程;中心节点和训练节点也可以是在实体设备中建立的虚拟模块,中心节点可以和训练节点集成在一个实体设备中,如图2所示,则中心节点和训练节点集成的实体设备既要与其他实体设备中的训练节点进行数据交互,也要参与使用训练样本对待训练的模型进行训练的过程,本发明对此不做限定。
中心节点可以包括处理器、存储器、收发器等部件。处理器,可以为CPU(CentralProcessing Unit,中央处理单元)等,可以根据性能参数确定训练节点的BatchSize、获取每个训练节点的性能参数、计算接收到的梯度数据的平均值等处理。存储器,可以为RAM(Random Access Memory,随机存取存储器),Flash(闪存)等,可以用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如每个训练节点的性能参数、每个训练节点的BatchSize、训练节点发送的梯度数据、梯度数据的平均值、待训练的模型的更新参数等。收发器,可以用于与终端或其它服务器进行数据传输,例如,向训练节点发送待训练的模型的更新参数,向每个训练节点发送对应的BatchSize,收发器可以包括天线、匹配电路、调制解调器等。中心节点还可以包括屏幕、图像检测部件、音频输出部件和音频输入部件等。屏幕可以用于显示训练结果。图像检测部件可以是摄像头等。音频输出部件可以是音箱、耳机等。音频输入部件可以是麦克风等。
训练节点可以包括处理器、存储器、收发器等部件。处理器,可以为CPU(CentralProcessing Unit,中央处理单元)等,可以用于根据BatchSize获取训练样本、根据训练样本得到训练样本对应的输出数据、计算梯度数据、根据更新参数对待训练参数进行更新等处理。存储器,可以为RAM(Random Access Memory,随机存取存储器),Flash(闪存)等,可以用于存储接收到的数据、处理过程所需的数据、处理过程中生成的数据等,如BatchSize、训练样本、训练样本对应的输出数据、待训练参数对应的梯度数据、更新参数等。收发器,可以用于与终端或其它服务器进行数据传输,例如,向中心节点发送待训练参数对应的梯度数据,接收中心节点发送的对应的BatchSize,收发器可以包括天线、匹配电路、调制解调器等。终端还可以包括屏幕、图像检测部件、音频输出部件和音频输入部件等。屏幕可以用于显示训练结果等。收发器,可以用于与其它设备进行数据传输,例如,接收服务器发送的设备列表和控制页面,可以包括天线、匹配电路、调制解调器等。
本发明实施例提供了一种更新参数的方法,该方法应用于中心节点,如图3所示,该方法的处理流程可以包括如下的步骤:
在步骤301中,获取每个训练节点的性能参数。
在步骤302中,根据每个训练节点的性能参数,分别确定每个训练节点在预设时长内能够处理的训练样本的数目,作为每个训练节点对应的样本数据批次数目BatchSize。
在步骤303中,将确定出的BatchSize,分别发送给对应的训练节点。
本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,使得训练节点根据BatchSize,获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
本发明实施例提供了一种更新参数的方法,该方法应用于训练节点,如图4所示,该方法的处理流程可以包括如下的步骤:
在步骤401中,接收中心节点发送的本训练节点对应的BatchSize。
在步骤402中,根据BatchSize,获取对应数目的训练样本。
在步骤403中,根据获取的训练样本,对待训练的模型进行训练处理。
本发明实施例中,训练节点获取基于本训练节点的计算性能确定的BatchSize,并根据该BatchSize获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,这样每个训练节点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
本发明实施例提供了一种更新参数的方法,该方法应用于中心节点和训练节点,如图5所示,该方法的处理流程可以包括如下的步骤:
在步骤501中,中心节点获取每个训练节点的性能参数。
一个可能的实施例中,用户想要通过中心节点和多个训练节点对待训练的模型进行训练时,可以先启动中心节点和训练节点。启动后,中心节点向每个训练节点发送性能参数获取请求,接收到性能参数获取请求的训练节点存储并解析性能参数获取请求,然后获取预先存储的性能参数以及自身的节点标识,将性能参数和节点标识发送给中心节点。中心节点接收到各训练节点发送的性能参数和节点标识后,将各训练节点的性能参数和节点标识对应存储,并生成一个参与训练的所有训练节点的节点标识表。
可选地,上述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数。
其中,CPU型号是指CPU厂商会根据CPU产品的市场定位来给CPU产品确定一个型号以便于分类和管理,一般而言CPU型号可以说是用于区分CPU性能的重要标识。一般来说,一个CPU型号可以代表固定的CPU的内核数量以及固定的核心频率。
处理预设数目个训练样本所耗时长是训练节点预先获得并存储的参数。该参数可以是技术人员预先根据预设数目个训练样本对训练节点进行测试,然后记录处理预设数目个训练样本所消耗的时长并存储得到的。另外,该参数也可以是在各训练节点启动后,各训练节点自动获取预设数目个训练样本进行测试,自动记录并存储处理预设数目个训练样本所消耗的时长。除了上述的方法之外,任一可以获取处理预设数目个训练样本所耗时长的方案皆可,本发明对此不做限定。
在步骤502中,根据每个训练节点的性能参数,中心节点分别确定每个训练节点在预设时长内能够处理的训练样本的数目,作为每个训练节点对应的样本数据批次数目BatchSize。
一个可能的实施例中,获取每个训练节点的性能参数后,中心节点根据每个训练节点的性能参数,确定每个训练节点在预设时长内能够处理的训练样本的数目,作为每个训练节点对应的BatchSize。这样,可以根据每个训练节点的计算性能,确定它们每次训练处理的训练样本的数目,计算性能强一些的训练节点每次处理的训练样本的数目多一些,计算性能弱一些的训练节点每次处理的训练样本的数目少一些,这样,各训练节点处理训练样本所消耗的时间大致相同,避免出现训练节点每次训练消耗的时间不相同,使得计算性能强的训练节点需要等待计算性能弱的训练节点完成训练样本处理后,才能进行下一步操作的情况,避免出现计算资源的浪费,可以进一步提高训练效率。
可选地,中心节点可以根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,计算得到每个训练节点的样本数据批次数目BatchSize,相应的处理步骤可以如下:根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据单位时长内处理训练样本的数目,确定每个训练节点在预设时长内能够处理的训练样本的数目,作为每个训练节点对应的样本数据批次数目BatchSize。
其中,BatchSize用于指示训练节点在使用训练样本训练时,一次训练过程中同时处理训练样本的数目。预设时长相当于每个训练节点使用训练样本完成一次训练所消耗的时长。
一个可能的实施例中,获取每个训练节点的性能参数后,下面以一个训练节点的性能参数为例进行说明。
中心节点获取预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,该对应关系为技术人员预先进行大量试验得到的结果,然后以对应关系表的形式存储在中心节点。基于上述性能参数包括CPU型号、CPU个数、GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数,因此性能参数与单位时长内处理训练样本的数目的对应关系表可以是多个表,至少包括CPU型号与单位时长内处理训练样本的数目的对应关系表(如下表1所示)、CPU个数与单位时长内处理训练样本的数目的对应关系表(如下表2所示)以及GPU型号与单位时长内处理训练样本的数目的对应关系表(如下表3所示)这三个表。如果性能参数为处理预设数目个训练样本所耗时长,可以通过算法计算得到单位时长内处理训练样本的数目,举例来说,假设某一训练节点的性能参数为处理预设数目个训练样本所耗时长,其中,预设数目为100,所耗时长为10s,而待计算的单位时长内处理训练样本的数目中的单位时长为20s,则可以计算20s÷10s×100=200,可以得到单位时长内处理训练样本的数目为200。
表1
CPU型号 单位时长处理训练样本的数目
Intel i3 300
Intel i5 380
…… ……
AMD Ryzen 7 2700 330
表2
CPU内核数目 单位时长处理训练样本的数目
2 150
4 270
6 380
8 500
表3
GPU型号 单位时长处理训练样本的数目
Intel(R)HD Graphics 630 350
AMD Radeon(TM)R9 270 480
…… ……
GeForce GTX 760 200
中心节点可以确定训练节点的性能参数的种类,然后获取对应的对应关系表,在对应关系表中查询训练节点的性能参数对应的单位时长内处理训练样本的数目。例如,中心节点确定训练节点的性能参数CPU型号为Intel i5,则中心节点获取表1对应的对应关系表,并查询Intel i5对应的单位时长内处理训练样本的数目,可以确定该训练节点的性能参数对应的单位时长内处理训练样本的数目为380。
需要说明的是,训练节点的性能参数可以是上述参数中的多种参数共同组成,这种情况下,可以先确定每种参数对应的单位时长内处理训练样本的数目,然后计算确定出的多个单位时长内处理训练样本的数目的平均值,作为该训练节点的单位时长内处理训练样本的数目。
确定出训练节点的单位时长内处理训练样本的数目后,根据确定的单位时长内处理训练样本的数目,确定该训练节点在预设时长内能够处理的训练样本的数目,例如,确定出训练节点的单位时长内处理训练样本的数目为380,且单位时长为10s,而上述预设时长设置为30s,则可以计算30s÷10s×380=1140,即该训练节点在预设时长内能够处理的训练样本的数目为1140。将计算得到的结果作为该训练节点对应的BatchSize。
需要说明的是,上述步骤以中心节点确定一个训练节点的BatchSize为例进行说明,对于每个参与训练的训练节点,中心节点在确定其BatchSize时,均可按照上述处理步骤进行处理,本发明在此不做赘述。
在步骤503中,中心节点将确定出的BatchSize,分别发送给对应的训练节点。
一个可能的实施例中,通过上述步骤确定每个训练节点的BatchSize后,中心节点获取训练节点的节点标识以及该训练节点的BatchSize,然后根据该训练节点的节点标识,获取该训练节点对应的节点地址,根据该节点地址,向该训练节点发送该训练节点对应的BatchSize。
在步骤504中,训练节点接收中心节点发送的本训练节点对应的BatchSize。
一个可能的实施例中,通过上述步骤中心节点向各训练节点发送对应的BatchSize后,训练节点接收中心节点发送的BatchSize。然后根据接收到的BatchSize以及模型初始参数对预先存储的待训练的模型进行初始化。模型初始参数可以预先存储在训练节点中,使用时训练节点直接从自身的存储器中获取即可。模型初始参数也可以是存储在中心节点中,训练节点向中心节点发送初始参数获取请求,中心节点根据训练节点发送的初始参数获取请求,将预先存储的模型初始参数发送给训练节点,训练节点接收并存储模型初始参数,以此方式得到的。本发明对此不做限制。
在步骤505中,根据BatchSize,训练节点获取对应数目的训练样本。
一个可能的实施例中,接收到中心节点发送的BatchSize后,训练节点根据BatchSize获取对应数目的训练样本,开始处理训练样本进行训练。
需要说明的是,训练样本可以已知的任何一种训练数据集,具体是哪一种训练数据集根据用户的需求进行挑选,且所有参与使用训练样本对模型进行训练的训练节点,使用的训练样本均不相同。下面提供几种可选的训练节点获取训练样本的方案:
方案一、训练样本可以预先存储在中心节点中,当训练节点需要获取训练样本时,向中心节点发送训练样本获取请求,该训练样本获取请求中携带有该训练节点的节点标识以及BatchSize,中心节点接收到训练样本获取请求后,根据BatchSize获取到对应数目的训练样本后,根据节点标识向训练节点发送训练样本。其中,为了给每个训练节点分配不同的训练样本,中心节点可以采用顺序分配算法,按照训练样本集中的顺序给每个训练节点分配训练样本,也可以采用任何一种随机不重复分配算法,随机给各训练节点分配不重复的训练样本。或者,中心节点按照训练节点的数目,将存储的训练数据集分段,每段训练数据集对应一个训练节点。除了上述方案之外,任一可以使中心节点为每个训练节点分配不同的训练样本的方案皆可,本发明对此不做限制。
方案二、训练样本可以预先存储在每个训练节点中,训练节点可以根据BatchSize直接在各自的存储器中获取对应数目的训练样本。其中,为了使每个训练节点获取不同的训练样本,每个训练节点中存储的训练样本可以是同一个训练数据集中的不同部分,即每个训练节点中存储的训练样本不相同。或者,在每个训练节点中存储相同的训练数据集,但不同训练节点中的训练数据集带有不同的分段标识,每个训练节点只能够获取分段标识区分出来的训练数据集中的部分训练样本。除了上述方案之外,任一可以使每个训练节点获取不同的训练样本的方案皆可,本发明对此不做限制。
方案三、训练样本可以预先存储在独立的存储服务器中,当训练节点需要获取训练样本时,向存储服务器发送训练样本获取请求,该训练样本获取请求中携带有该训练节点的节点标识以及BatchSize,存储服务器接收到训练样本获取请求后,根据BatchSize获取到对应数目的训练样本后,根据节点标识向训练节点发送训练样本。存储服务器给每个训练节点分配不同训练样本的方案可以参考上述方案一的方案,本发明在此不做赘述。通常来说,存储服务器的处理速度和带宽比中心节点要高一些,因此,将训练样本存储在存储服务器的方案的训练效率要比将训练样本存储在中心节点的方案的训练效率高。
在步骤506中,根据获取的训练样本,训练节点对待训练的模型进行训练处理。
一个可能的实施例中,通过上述步骤获取到训练样本后,训练节点使用获取到的训练样本,对待训练的模型进行训练处理。
可选地,上述训练样本可以包括样本输入数据和输出参考数据,如图6所示,根据训练样本,训练节点和中心节点对待训练的模型进行训练的处理步骤可以如下:在步骤601中,训练节点将获取的训练样本中的样本输入数据输入待训练的模型,得到训练样本对应的输出数据;在步骤602中,根据训练样本中的输出参考数据和输出数据,训练节点确定待训练的模型中的每个待训练参数对应的梯度数据;在步骤603中,训练节点将梯度数据发送给中心节点;在步骤604中,中心节点接收训练节点发送的梯度数据;在步骤605中,中心节点计算接收到的梯度数据的平均值;在步骤606中,根据平均值,中心节点确定待训练的模型的更新参数;在步骤607中,中心节点将更新参数发送给每个训练节点;在步骤608中,训练节点接收中心节点发送的更新参数,根据更新参数,对待训练的模型中的每个待训练参数进行参数更新。
一个可能的实施例中,各训练节点根据对应的BatchSize获取对应数目的训练样本后,以一个训练节点与中心节点的交互为例,假设BatchSize的数目为n,即该训练节点一次获取到n个训练样本,该训练节点将获取到的n个训练样本中的样本输入数据输入到待训练的模型中,待训练的模型同时对n个样本输入数据进行处理,输出n个输出数据。
需要说明的是,对于多个训练节点来说,由于上述步骤是根据每个训练节点的计算性能确定每个训练节点的BatchSize,计算性能强的训练节点同时处理的训练样本的数目多一些,计算性能弱的训练节点同时处理的训练样本的数目少一些,且根据计算每个训练节点的BatchSize的过程可以得知,每个训练节点根据BatchSize获取对应数目的训练样本并同时处理这些训练样本所耗时长为上述的预设时长,即每个训练节点所耗时间相同,这样可以避免出现计算资源的浪费,可以进一步提高训练效率。
然后,根据n个输出数据分别与各自对应的训练样本中的输出参考数据,以及计算损失函数值Loss的计算公式,计算n个输出数据各自对应的Loss。其中,输出数据和输出参考数据均可以是长向量的形式,且输出数据和输出参考数据的向量长度相同。优选地,可以根据交叉熵损失函数的计算公式来计算Loss,如下述公式(1)。
Figure BDA0001737694470000141
其中,y表示输出参考数据,p表示输出数据,N表示输出参考数据或输出数据的向量长度。
计算得到n个Loss后,计算n个Loss的平均值,作为这批训练样本的共同Loss。然后,可以根据共同Loss来判断是否需要继续训练。一种可行的判断方案可以是,判断共同Loss是否小于预设的Loss阈值,如果共同Loss小于预设的Loss阈值,则说明样本输入数据对应的输出数据和样本参考数据的差距很小,可以认为该模型已经训练完成,则停止训练,并将当前模型中的各待训练参数的参数值作为训练好的模型中的参数值,训练过程结束。另外一种可行的判断方案可以是,判断共同Loss是否收敛,即此次迭代的共同Loss与上次迭代的共同Loss是否发生变化,如果没有变化,则说明共同Loss收敛,继续训练也不能使共同Loss变小,因此,停止训练,训练结束。
如果共同Loss大于或等于预设的Loss阈值,或共同Loss没收敛,则说明继续训练可以减小共同Loss,使得模型的精度提高,因此,可以继续训练。根据共同Loss以及模型中每个待训练参数的初始值,计算每个待训练参数的梯度数据,计算梯度数据的计算公式可以如下述公式(2)所示,然后将得到的梯度数据以及自身的节点标识发送给中心节点。
Figure BDA0001737694470000151
其中,Wi为该待训练参数当前的参数值,Loss为共同Loss,ΔWi为梯度数据。
中心节点接收到训练节点发送的梯度数据和节点标识后,将接收到的至少一个节点标识与先前生成的节点标识表中的节点标识进行对比,如果接收到的节点标识与节点标识表中的节点标识相同,则说明参与模型训练的所有训练节点都完成了对训练样本的处理并返回了梯度数据。中心节点分别计算接收到的所有梯度数据中,每个待训练参数对应的梯度数据的平均值,最终得到所有待训练参数的梯度数据的平均值。然后,中心节点根据每个待训练参数的梯度数据的平均值以及预设的学习率,计算每个待训练参数的更新参数,计算公式可以如下述公式(3)。
Figure BDA0001737694470000152
其中,Wi+1为该待训练参数的更新参数,α为预设的学习率,
Figure BDA0001737694470000153
为梯度数据的平均值。
得到每个待训练参数的更新参数后,中心节点将更新参数分别发送给每个训练节点。训练节点接收到更新参数后,将待训练的模型中的各待训练参数更新为接收到的更新参数。这样,便完成了一次深度学习同步数据并行训练。
需要说明的是,除了上述根据共同Loss判断是否需要继续训练之外,还可以根据训练精度或迭代次数来判断。
在对模型进行训练的过程中,可以将部分训练样本划分成测试样本,使用测试样本对模型进行测试,将得到的测试数据与对应的输出参考数据进行对比,确定得到的测试数据是否正确,然后计算得到的测试数据中正确的测试数据与错误的测试数据的比值,即为训练精度。训练精度表示一个模型输出的正确率。当训练精度达到预设的训练精度阈值时,说明该模型已经足够精确,无需继续训练,因此当训练精度达到预设的训练精度阈值时,停止训练,训练过程结束。
也可以根据训练精度是否收敛来确定是否需要继续训练,如果训练精度收敛,说明继续训练也无法提升训练精度,因此,当训练精度收敛时停止训练,训练过程结束。
另外,还可以预先设定迭代次数阈值,当训练的迭代次数达到迭代次数阈值时停止训练,训练过程结束。除上述判断停止训练的方法外,任一可以有效判断停止训练的方法皆可,不限于上述例举的几种方法,本发明对此不做限制。
重复上述训练过程,直到达到上述停止训练的条件时,停止训练,每个训练节点均得到相同的、训练好的模型。
需要说明的是,上述中心节点可以是终端,也可以是服务器。训练节点可以是终端,也可以是服务器。中心节点和训练节点可以是各自独立的实体设备,中心节点仅用于和训练节点进行数据交互,本身不参与使用训练样本对待训练的模型进行训练的过程;中心节点和训练节点也可以是在实体设备中建立的虚拟模块,中心节点可以和训练节点集成在一个实体设备中,则中心节点和训练节点集成的实体设备既要与其他实体设备中的训练节点进行数据交互,也要参与使用训练样本对待训练的模型进行训练的过程,在这种情况下,中心节点所在的实体设备与其他训练节点所在的实体设备之间的数据交互可以采用并行通讯协议。
本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,训练节点根据BatchSize,获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
基于相同的技术构思,本发明实施例还提供了一种更新参数的装置,该装置可以为上述实施例中的中心节点,如图7所示,该装置包括:获取模块710,确定模块720和发送模块730。
该获取模块710被配置为获取每个训练节点的性能参数;
该确定模块720被配置为根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize;
该发送模块730被配置为将确定出的BatchSize,分别发送给对应的训练节点。
可选地,所述性能参数包括中央处理器CPU型号、CPU个数、图形处理器GPU型号、处理预设数目个训练样本所耗时长中的至少一个参数。
可选地,所述确定模块720被配置为:
根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。
可选地,如图8所示,所述装置还包括:
接收模块740,被配置为将确定出的BatchSize,分别发送给对应的训练节点之后,接收所述每个训练节点发送的梯度数据;
计算模块750,被配置为计算接收到的梯度数据的平均值;
所述确定模块720,还被配置为根据所述平均值,确定待训练的模型的更新参数;
所述发送模块730,还被配置为将所述更新参数发送给每个训练节点。
本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,使得训练节点根据BatchSize,获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
基于相同的技术构思,本发明实施例还提供了一种更新参数的装置,该装置可以为上述实施例中的训练节点,如图9所示,该装置包括:接收模块910,获取模块920和训练模块930。
接收模块910,被配置为接收中心节点发送的本训练节点对应的BatchSize;
获取模块920,被配置为根据所述BatchSize,获取对应数目的训练样本;
训练模块930,被配置为根据获取的训练样本,对待训练的模型进行训练处理。
可选地,所述训练样本包括样本输入数据和输出参考数据;
所述训练模块930,被配置为:
将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;
根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;
将所述梯度数据发送给所述中心节点;
接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。
本发明实施例中,训练节点获取基于本训练节点的计算性能确定的BatchSize,并根据该BatchSize获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,这样每个训练节点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
基于相同的技术构思,本发明实施例还提供了一种更新参数的系统,所述系统包括中心节点和训练节点,其中:
所述中心节点,用于获取每个训练节点的性能参数;根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize;将确定出的BatchSize,分别发送给对应的训练节点;
所述训练节点,用于接收中心节点发送的本训练节点对应的BatchSize;根据所述BatchSize,获取对应数目的训练样本;根据获取的训练样本,对待训练的模型进行训练处理。
本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,训练节点根据BatchSize,获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是:上述实施例提供的更新参数的装置在更新参数时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的更新参数的装置与更新参数的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图10是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备可以是上述实施例中的中心节点。该计算机设备1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)1001和一个或一个以上的存储器1002,其中,所述存储器1002中存储有至少一条指令,所述至少一条指令由所述处理器1001加载并执行以实现下述更新参数的方法步骤:
获取每个训练节点的性能参数;
根据所述每个训练节点的性能参数,分别确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize;
将确定出的BatchSize,分别发送给对应的训练节点。
可选的,所述至少一条指令由所述处理器1001加载并执行以实现下述方法步骤:
根据预先存储的性能参数与单位时长内处理训练样本的数目的对应关系,以及所述每个训练节点的性能参数,确定对应的单位时长内处理训练样本的数目,根据所述单位时长内处理训练样本的数目,确定所述每个训练节点在预设时长内能够处理的训练样本的数目,作为所述每个训练节点对应的样本数据批次数目BatchSize。
可选的,所述至少一条指令由所述处理器1001加载并执行以实现下述方法步骤:
接收所述每个训练节点发送的梯度数据;
计算接收到的梯度数据的平均值;
根据所述平均值,确定待训练的模型的更新参数;
将所述更新参数发送给每个训练节点。
本发明实施例中,中心节点根据每个训练节点的性能参数,确定每个训练节点的样本数据批次数目BatchSize,使得训练节点根据BatchSize,获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,使得每个训练节点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
图11是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备可以是上述实施例中的训练节点。该计算机设备1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)1101和一个或一个以上的存储器1102,其中,所述存储器1102中存储有至少一条指令,所述至少一条指令由所述处理器1101加载并执行以实现下述更新参数的方法步骤:
接收中心节点发送的本训练节点对应的BatchSize;
根据所述BatchSize,获取对应数目的训练样本;
根据获取的训练样本,对待训练的模型进行训练处理。
可选的,所述至少一条指令由所述处理器1101加载并执行以实现下述方法步骤:
将获取的训练样本中的样本输入数据输入待训练的模型,得到所述训练样本对应的输出数据;
根据所述训练样本中的输出参考数据和所述输出数据,确定所述待训练的模型中的每个待训练参数对应的梯度数据;
将所述梯度数据发送给所述中心节点;
接收所述中心节点发送的更新参数,根据所述更新参数,对所述待训练的模型中的每个待训练参数进行参数更新。
本发明实施例中,训练节点获取基于本训练节点的计算性能确定的BatchSize,并根据该BatchSize获取对应数目的训练样本,对待训练的模型进行训练处理。这样,根据训练节点的计算性能确定训练节点的BatchSize,计算性能强一些的训练节点的BatchSize大一些,计算性能弱一些的训练节点的BatchSize小一些,即计算性能强一些的训练节点同时使用数目较多的训练样本来计算梯度数据,计算性能弱一些的训练节点同时使用数目较少的训练样本来计算梯度数据,这样每个训练节点消耗的时间几乎相同,可以避免出现计算能力强的训练节点先完成计算,然后等待计算能力弱的训练节点计算完成才能进行后续处理的情况,避免浪费训练节点的计算资源,进而提高了训练的效率。
在示例性实施例中,还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述实施例中的识别动作类别的方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

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,获取对应数目的训练样本;根据获取的训练样本,对待训练的模型进行训练处理。
CN201810803723.3A 2018-07-20 2018-07-20 更新参数的方法和装置 Active CN110737446B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810803723.3A CN110737446B (zh) 2018-07-20 2018-07-20 更新参数的方法和装置
PCT/CN2019/096774 WO2020015734A1 (zh) 2018-07-20 2019-07-19 更新参数的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810803723.3A CN110737446B (zh) 2018-07-20 2018-07-20 更新参数的方法和装置

Publications (2)

Publication Number Publication Date
CN110737446A CN110737446A (zh) 2020-01-31
CN110737446B true CN110737446B (zh) 2021-10-12

Family

ID=69165013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810803723.3A Active CN110737446B (zh) 2018-07-20 2018-07-20 更新参数的方法和装置

Country Status (2)

Country Link
CN (1) CN110737446B (zh)
WO (1) WO2020015734A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035751A (zh) * 2014-06-20 2014-09-10 深圳市腾讯计算机系统有限公司 基于多图形处理器的数据并行处理方法及装置
CN105184367A (zh) * 2014-06-09 2015-12-23 讯飞智元信息科技有限公司 深度神经网络的模型参数训练方法及系统
CN106293942A (zh) * 2016-08-10 2017-01-04 中国科学技术大学苏州研究院 基于多机多卡的神经网络负载均衡优化方法和系统
CN106991072A (zh) * 2016-01-21 2017-07-28 杭州海康威视数字技术股份有限公司 在线自学习事件检测模型更新方法及装置
CN107622274A (zh) * 2016-07-15 2018-01-23 北京市商汤科技开发有限公司 用于图像处理的神经网络训练方法、装置以及计算机设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904149B2 (en) * 2010-06-24 2014-12-02 Microsoft Corporation Parallelization of online learning algorithms
ES2738319T3 (es) * 2014-09-12 2020-01-21 Microsoft Technology Licensing Llc Sistema informático para entrenar redes neuronales
CN106033371B (zh) * 2015-03-13 2019-06-21 杭州海康威视数字技术股份有限公司 一种视频分析任务的调度方法及系统
CN106203395B (zh) * 2016-07-26 2020-01-14 厦门大学 基于多任务深度学习的人脸属性识别方法
CN107665349B (zh) * 2016-07-29 2020-12-04 腾讯科技(深圳)有限公司 一种分类模型中多个目标的训练方法和装置
US20180144244A1 (en) * 2016-11-23 2018-05-24 Vital Images, Inc. Distributed clinical workflow training of deep learning neural networks
CN107203809A (zh) * 2017-04-20 2017-09-26 华中科技大学 一种基于Keras的深度学习自动化调参方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105184367A (zh) * 2014-06-09 2015-12-23 讯飞智元信息科技有限公司 深度神经网络的模型参数训练方法及系统
CN104035751A (zh) * 2014-06-20 2014-09-10 深圳市腾讯计算机系统有限公司 基于多图形处理器的数据并行处理方法及装置
CN106991072A (zh) * 2016-01-21 2017-07-28 杭州海康威视数字技术股份有限公司 在线自学习事件检测模型更新方法及装置
CN107622274A (zh) * 2016-07-15 2018-01-23 北京市商汤科技开发有限公司 用于图像处理的神经网络训练方法、装置以及计算机设备
CN106293942A (zh) * 2016-08-10 2017-01-04 中国科学技术大学苏州研究院 基于多机多卡的神经网络负载均衡优化方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于多机多卡的卷积神经网络性能优化;郑焕鑫;《中国优秀硕士学位论文全文数据库信息科技辑》;20160915;I140-46 *

Also Published As

Publication number Publication date
CN110737446A (zh) 2020-01-31
WO2020015734A1 (zh) 2020-01-23

Similar Documents

Publication Publication Date Title
CN111340237B (zh) 数据处理和模型运行方法、装置和计算机设备
CN110705705B (zh) 卷积神经网络模型同步训练方法、集群及可读存储介质
CN110610242A (zh) 一种联邦学习中参与者权重的设置方法及装置
CN106101740B (zh) 一种视频内容识别方法和装置
CN110309060A (zh) 识别算法更新的检测方法、装置、存储介质及计算机设备
CN109240802B (zh) 请求处理方法和装置
CN109254913A (zh) 设备共享方法、装置、电子设备及计算机存储介质
CN112862112A (zh) 联邦学习方法、存储介质、终端、服务器、联邦学习系统
CN109144846B (zh) 用于测试服务器的测试方法和装置
CN110737446B (zh) 更新参数的方法和装置
CN109948632A (zh) 数据训练方法、装置及系统、计算机设备
CN113191114B (zh) 用于验证系统的方法和装置
CN107015906B (zh) 测试方法及装置、端口生成方法及端口生成器和测试系统
CN112580730A (zh) 一种终端类型的识别方法及装置
Ekaireb et al. ns3-fl: Simulating Federated Learning with ns-3
CN115563160A (zh) 数据处理方法、装置、计算机设备和计算机可读存储介质
CN108521382A (zh) 一种消息发送方法、装置及系统
CN115037665A (zh) 设备测试方法和装置
CN114490374A (zh) 应用的压力测试方法、电子设备、存储介质及程序产品
CN107103003B (zh) 获取链路中数据的方法、获取设备、处理设备和系统
CN117519910B (zh) 用于虚拟机的计算快速链接内存确定方法和装置
WO2019127386A1 (en) Methods, network function entities and computer readable media for providing iot services
CN110503202B (zh) 一种信息处理方法及电子设备
CN112804298B (zh) 减少跨区流量的方法、装置、计算机设备和可读存储介质
WO2014117566A1 (en) Ranking method and system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant