CN111985609A - 一种基于TensorFlow框架的数据并行优化方法 - Google Patents

一种基于TensorFlow框架的数据并行优化方法 Download PDF

Info

Publication number
CN111985609A
CN111985609A CN202010640428.8A CN202010640428A CN111985609A CN 111985609 A CN111985609 A CN 111985609A CN 202010640428 A CN202010640428 A CN 202010640428A CN 111985609 A CN111985609 A CN 111985609A
Authority
CN
China
Prior art keywords
iteration
parameter
client
tensorflow
layer
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.)
Pending
Application number
CN202010640428.8A
Other languages
English (en)
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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202010640428.8A priority Critical patent/CN111985609A/zh
Publication of CN111985609A publication Critical patent/CN111985609A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种基于TensorFlow框架的数据并行优化方法,其特征在于,在TensorFlow的数据并行中加入时间并行特征,以流水线执行方式取代原本的线形执行模式,含Server端和Client端算法两个部分。所述的Server端算法负责接收Client端传来的第t次迭代时的参数更新,以广播的形式发送给全部Client端,待迭代达最大次数T时,将当前的参数值保存到文件作为训练完成的模型。所述的Client端算法,先从本地读取训练数据分片,然后开始执行迭代,Client首先从Server处接收整个网络的参数,然后进行前向传递;待迭代达到最大迭代次数T时,程序释放资源,结束执行。

Description

一种基于TensorFlow框架的数据并行优化方法
技术领域
本发明涉及计算机领域,尤其涉及一种基于TensorFlow框架的数据并行优化方法。
背景技术
TensorFlow因其在深度学习上的种种优势而广受推崇。但是,随着深度学习被应用于越来越复杂的问题处理中,深度学习模型变得越来越庞大,往往对一个深度模型进行迭代训练需要较长的时间,同时设备的利用率也较低,这对于高速发展的信息时代是不可接受的时间消耗。即使TensorFlow已经支持了分布式迭代训练,对训练时间长的问题有所改善,但是仍不能达到要求,依然存在训练消耗很长时间的问题。提高计算设备利用率、减少模型训练时间,这些都是可以优化改进的方向。因此,亟需一种提高设备利用率、减少TensorFlow框架训练时间的方法。
Google公司推出TensorFlow框架以来,深度学习相关研究得到了前所未有的发展,相关的模型越来越高级,越来越复杂,分层结构得到的层数越来越多,随之而来的训练速度问题逐渐成为了阻拦深度学习发展的最大问题,对减少模型训练时间的需求也与日俱增。通过分布式并行的方式来提高深度学习模型的训练效率这一研究在国内外都一直被众多团队不懈地探索着。就Google本身而言,TensorFlow终于在版本0.8.0时期开始提供分布式并行的相关API,虽然并行的方式比较简陋。
后面,全球各地开源团队均在TensorFlow并行上做着努力。2016年09月,TensorFlow在GitHub开源社区推出了归属于数据并行的“参数服务器”分布式架构,从而再次推动了TensorFlow在分布式领域上的发展。包括在2017年02月推出的SupervisorAPI和2017年11月推出的MonitoredTrainingSessionAPI都标志着开发者们对TensorFlow分布式并行的不断探索。
除去TensorFlow官方推出的分布式API,第三方互联网公司也推出了不少的分布式架构来完善TensorFlow这一深度学习开源框架。美国时间2017年02月22日,百度硅谷人工智能实验室(SVAIL)宣布向深度学习领域开源了RingAllreduce算法库,其为分布式并行提供了新的思路,同时降低了分布式深度学习的门槛,使得更多的人或者机构可以亲身感受到深度学习带来的便利。同年10月,Uber公司推出了Horovod深度学习工具。Horovod以百度RingAllreduce为基础,持续优化。
发明内容
为了解决上述问题,本发明实施例提供一种基于TensorFlow框架的数据并行优化方法。
本发明实施例提供一种基于TensorFlow框架的数据并行优化方法,包括:
在TensorFlow的数据并行中加入时间并行特征,实现算法以流水线执行方式取代原本的线形执行模式,加入流水线形式的算法设计包含Server端算法和Client端算法两个部分。
所述的Server端算法负责接收Client端传来的第t次迭代时第l层的参数更新,不必等到本次迭代时整个网络的参数更新都被接收。
在分布式训练过程中,Server端负责接收Client端传来的第t次迭代时第l层的参数更新,不必等到本次迭代时整个网络的参数更新都被接收,在同步模式下需要等到每个Client传来第l层的参数更新,Server端才可以据此对第l层的参数上执行参数更新(通常情况下是将此参数更新值乘上一个学习率再应用到旧的参数上),然后将新得到的参数以广播的行式发送给全部Client端,这就算完成了第t次迭代,待到迭代次数达到最大迭代次数T时,程序便可以将当前的参数值保存到文件作为训练完成的模型。
Server端算法在TensorFlow框架平台上的具体实现过程主要包括:
1.构建TensorFlow网络模型;
2.创建TensorFlow会话;
3.TensorFlow各种变量初始化;
4.接收Client端传来的第t次迭代时第l层的参数更新;
5.对第l层的参数上执行参数更新(执行process函数),此时完成第t次迭代;
6.当迭代次数进行到最大设置迭代数时,停止迭代过程;
7.迭代执行完毕后保存模型(包括模型当前的各种变量参数);
8.关闭会话。
所述的Client端算法,首先从本地读取训练数据分片,然后开始执行迭代,每次迭代中,Client首先从Server处接收整个网络的参数,然后进行前向传递。
客户端启动之后,首先从本地读取训练数据分片,然后开始执行迭代,每次迭代中,Client首先从Server处接收整个网络的参数,然后进行前向传递。前向传递完成之后,Client按计算图从后往前反向传导,每完成一层网络的传导,便将计算得到的参数更新值(梯度)发送给服务器。当计算图的最前一层参数更新值传递发送完成后,Client就将进入下一次迭代了。待到迭代次数达到最大迭代次数T时,程序便释放资源,结束执行。
Client端算法在TensorFlow框架平台上的具体实现过程主要包括:
1.构建TensorFlow网络模型;
2.创建TensorFlow会话;
3.TensorFlow各种变量初始化;
4.加载数据集进入之前构建的网络;
4.接收来自Server处的整个网络的参数;
5.执行前向传播过程;
6.前向传播过程结束;
7.根据计算图执行反向传导过程,计算参数更新值;
8.将参数更新值发送给server端,此时完成第t次迭代;
9.当迭代次数进行到最大设置迭代数时,停止迭代过程;
10.迭代执行完毕后关闭会话。
所述优化方法通过更新TensorFlow原生函数的内部实现,将深度模型数据并行迭代过程中的参数计算和参数同步两个阶段内部由顺序执行替换为流水线形式执行,可以将计算阶段和参数同步阶段在时间上并行,从而隐藏网络传输所带来的时间损耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施中数据并行涉及的主要模块;
图2为本发明实施中数据并行的基本流程图;
图3为本发明实施例中模型训练中的流水线工作方式。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
深度学习训练过程的核心在于BackPropagation算法(简称BP算法)。BP算法的基本原理是利用输出后的误差来估计输出层的直接前导层误差,再用这个误差估计更前一层的误差,如此一层一层的反向传递下去,就获得了所有其他各层的误差估计。于是,我们便将深度学习模型训练过程中的每次迭代划分为了两个阶段:更新值的计算过程C和参数的同步阶段S:
模型训练的每次迭代=[C,S]#(1-1)
度学习模型训练迭代过程中,BP算法反复执行后向传递和前向传导。现在令L表示神经网络共有L层,f和b分别表示计算过程中的“前向传递“和”后向传导”的过程。则对于训练的第t次迭代的更新值的计算过程C可表示为:
Figure BDA0002570878040000031
同理,参数同步过程S也包括两个阶段:发送本地参数阶段O和接受其他工作节点的参数阶段I。
S=[O,L]#(1-3)
则第t次迭代过程可表示为:
Figure BDA0002570878040000032
在此基础上,将BP算法过程中深度神经网络层次的概念引入,如下:
Figure BDA0002570878040000041
根据之前的理论研究,深度神经网络中参数是一个集合,而每层的参数是这个集合中的一个子集,并且这些子集之间互不重叠,参数同步过程中这些子集的同步彼此之间也互不干扰,对于参数同步过程的两个阶段可以继续做以下划分:
Figure BDA0002570878040000042
Figure BDA0002570878040000043
本发明实例中,模型训练的流水线的工作形式如下:
图2展示了数据并行的基本流程,根据以上深度模型训练中的这几个特点,可以将计算阶段和参数同步阶段在时间上并行。具体地讲,在后向传导的过程中,当第l层完成梯度计算后,会将计算结果输出到第l-1层,第l-1层则开始计算,此时,第l层的参数同步与第l-1层的计算无关,并且与其他层的参数同步也无关,所以,可以在第l-1层计算的同时完成第l层的参数同步,从而实现流水线的工作形式。
最终执行过程时序如图3所示,从图中可以看出,处于反向传导过程时,当第l层进行发送本地参数阶段和接收参数阶段的时候(参数同步)与第l-1层的计算更新值不冲突,实现了在时间上的并行,图3中T为设置的最大迭代次数。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件平台和硬件平台来实现,基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (5)

1.一种基于TensorFlow框架的数据并行优化方法,其特征在于,
在TensorFlow的数据并行中加入时间并行特征,实现算法以流水线执行方式取代原本的线形执行模式,在流水线形式的算法设计包含Server端算法和Client端算法两个部分。
2.根据权利要求1所述的一种基于TensorFlow框架的数据并行优化方法,其特征在于,所述的Server端算法负责接收Client端传来的第t次迭代时第l层的参数更新,不必等到本次迭代时整个网络的参数更新都被接收;
Server端负责接收Client端传来的第t次迭代时第l层的参数更新,不必等到本次迭代时整个网络的参数更新都被接收,在同步模式下需要等到每个Client传来第l层的参数更新,Server端才可以据此对第l层的参数上执行参数更新(通常情况下是将此参数更新值乘上一个学习率再应用到旧的参数上),然后将新得到的参数以广播的行式发送给全部Client端,这就完成了第t次迭代,待到迭代次数达到最大迭代次数T时,程序便可以将当前的参数值保存到文件作为训练完成的模型;Server端算法在TensorFlow框架平台上的具体实现过程主要包括:
1).构建TensorFlow网络模型;
2).创建TensorFlow会话;
3).TensorFlow各种变量初始化;
4).接收Client端传来的第t次迭代时第l层的参数更新;
5).对第l层的参数上执行参数更新(执行process函数),此时完成第t次迭代;
6).当迭代次数进行到最大设置迭代数时,停止迭代过程;
7).迭代执行完毕后保存模型(包括模型当前的各种变量参数);
8).关闭会话。
3.根据权利要求1所述的一种基于TensorFlow框架的数据并行优化方法,其特征在于,所述的Client端算法,首先从本地读取训练数据分片,然后开始执行迭代,每次迭代中,Client首先从Server处接收整个网络的参数,然后进行前向传递;客户端启动之后,首先从本地读取训练数据分片,然后开始执行迭代,每次迭代中,Client首先从Server处接收整个网络的参数,然后进行前向传递。前向传递完成之后,Client按计算图从后往前反向传导,每完成一层网络的传导,便将计算得到的参数更新值(梯度)发送给服务器。当计算图的最前一层参数更新值传递发送完成后,Client就将进入下一次迭代了。待到迭代次数达到最大迭代次数T时,程序便释放资源,结束执行;Client端算法在TensorFlow框架平台上的具体实现过程主要包括:
1).构建TensorFlow网络模型;
2).创建TensorFlow会话;
3).TensorFlow各种变量初始化;
4).加载数据集进入之前构建的网络;
5).接收来自Server处的整个网络的参数;
6).执行前向传播过程;
7).前向传播过程结束;
8).根据计算图执行反向传导过程,计算参数更新值;
9).将参数更新值发送给server端,此时完成第t次迭代;
10).当迭代次数进行到最大设置迭代数时,停止迭代过程;
11).迭代执行完毕后关闭会话。
4.根据权利要求1-3所述基于TensorFlow框架的数据并行优化方法,其特征在于,所述优化算法通过更新TensorFlow原生函数的内部实现,将深度模型数据并行迭代过程中的参数计算和参数同步两个阶段内部由顺序执行替换为流水线形式执行;将计算阶段和参数同步阶段在时间上并行,从而隐藏网络传输所带来的时间损耗。
5.根据权利要求1所述的方法,其特征在于,将计算阶段和参数同步阶段在时间上并行;具体地,在后向传导的过程中,当第l层完成梯度计算后,会将计算结果输出到第l-1层,第l-1层则开始计算,此时,第l层的参数同步与第l-1层的计算无关,并且与其他层的参数同步也无关,所以,可以在第l-1层计算的同时完成第l层的参数同步,从而实现流水线的工作形式。
CN202010640428.8A 2020-07-06 2020-07-06 一种基于TensorFlow框架的数据并行优化方法 Pending CN111985609A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010640428.8A CN111985609A (zh) 2020-07-06 2020-07-06 一种基于TensorFlow框架的数据并行优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010640428.8A CN111985609A (zh) 2020-07-06 2020-07-06 一种基于TensorFlow框架的数据并行优化方法

Publications (1)

Publication Number Publication Date
CN111985609A true CN111985609A (zh) 2020-11-24

Family

ID=73438993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010640428.8A Pending CN111985609A (zh) 2020-07-06 2020-07-06 一种基于TensorFlow框架的数据并行优化方法

Country Status (1)

Country Link
CN (1) CN111985609A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268638A (zh) * 2018-01-18 2018-07-10 浙江工业大学 一种基于Spark框架的生成对抗网络分布式实现方法
CN109032671A (zh) * 2018-06-25 2018-12-18 电子科技大学 一种基于数据并行策略的分布式深度学习方法及系统
CN109600255A (zh) * 2018-12-04 2019-04-09 中山大学 一种去中心化的参数服务器优化算法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268638A (zh) * 2018-01-18 2018-07-10 浙江工业大学 一种基于Spark框架的生成对抗网络分布式实现方法
CN109032671A (zh) * 2018-06-25 2018-12-18 电子科技大学 一种基于数据并行策略的分布式深度学习方法及系统
CN109600255A (zh) * 2018-12-04 2019-04-09 中山大学 一种去中心化的参数服务器优化算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何马均: "深度学习框架TensorFlow的高效分布式并行算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Similar Documents

Publication Publication Date Title
CN110503192B (zh) 资源有效的神经架构
WO2023071743A1 (zh) 网络模型训练方法、装置和计算机可读存储介质
CN114756383B (zh) 一种分布式计算方法、系统、设备及存储介质
CN108446761B (zh) 一种神经网络加速器及数据处理方法
CN112861995B (zh) 基于模型无关元学习的无监督少样本图像分类方法、系统及存储介质
CN112149808B (zh) 拓展单机图神经网络训练至分布式训练方法、系统及介质
WO2021244354A1 (zh) 神经网络模型的训练方法和相关产品
CN110187965B (zh) 神经网络的运行优化及数据处理方法、设备及存储介质
WO2018112699A1 (zh) 人工神经网络反向训练装置和方法
CN109635922B (zh) 一种分布式深度学习参数量化通信优化方法及系统
CN110832509A (zh) 使用神经网络的黑盒优化
CN113158608A (zh) 确定模拟电路参数的处理方法、装置、设备及存储介质
CN111625276B (zh) 基于语义与语法信息融合的代码摘要生成方法及系统
EP3889846A1 (en) Deep learning model training method and system
CN112381218B (zh) 一种用于分布式深度学习训练的本地更新方法
CN115660078A (zh) 一种分布式计算方法、系统、存储介质和电子设备
US8423979B2 (en) Code generation for complex arithmetic reduction for architectures lacking cross data-path support
CN111738435B (zh) 一种基于移动设备的在线稀疏训练方法及系统
CN113159287A (zh) 一种基于梯度稀疏的分布式深度学习方法
WO2017185248A1 (zh) 用于执行人工神经网络自学习运算的装置和方法
CN111985609A (zh) 一种基于TensorFlow框架的数据并行优化方法
CN116258197B (zh) 基于参数计算和通信调度的分布式训练加速方法和系统
CN116894778A (zh) 一种用于图像生成的扩散模型采样方法和装置
WO2020190745A1 (en) Budgeted neural network architecture search system and method
CN116542178A (zh) 定常流动数值模拟方法、装置、设备及介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20201124

RJ01 Rejection of invention patent application after publication