CN111788585B - 一种深度学习模型的训练方法、*** - Google Patents
一种深度学习模型的训练方法、*** Download PDFInfo
- Publication number
- CN111788585B CN111788585B CN201980000128.9A CN201980000128A CN111788585B CN 111788585 B CN111788585 B CN 111788585B CN 201980000128 A CN201980000128 A CN 201980000128A CN 111788585 B CN111788585 B CN 111788585B
- Authority
- CN
- China
- Prior art keywords
- gradient
- deep learning
- learning model
- layer
- parameter
- 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
Links
- 238000012549 training Methods 0.000 title claims abstract description 278
- 238000013136 deep learning model Methods 0.000 title claims abstract description 228
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000004891 communication Methods 0.000 claims abstract description 130
- 238000004364 calculation method Methods 0.000 claims abstract description 121
- 210000002569 neuron Anatomy 0.000 claims description 179
- 239000011159 matrix material Substances 0.000 claims description 111
- 230000008569 process Effects 0.000 claims description 40
- 238000012937 correction Methods 0.000 claims description 30
- 238000013135 deep learning Methods 0.000 claims description 19
- 230000001902 propagating effect Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 16
- 238000012804 iterative process Methods 0.000 abstract description 8
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001550 time effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
- Machine Translation (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种深度学习模型的训练方法,该方法包括:在N个深度学习模型的第j次迭代的BP计算中生成N个第一梯度集合,调整第一梯度集合包括的梯度的通信顺序,不按照第一梯度集合中包括的梯度的生成顺序来将第一梯度集合包括的梯度发送至参数存储空间。并按照调整之后的梯度的通信顺序,将N个第一梯度集合包括的梯度分别发送至参数存储空间。该方法通过调整本次迭代过程中得到的梯度传输到参数存储空间的传输顺序,提高了深度学习模型的训练效率。
Description
本申请要求于2019年1月16日提交中国专利局、申请号为201910041235.8、申请名称为“一种深度学习模型的分布式训练方法、***”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及人工智能领域,并且更具体地,涉及一种深度学习模型的训练方法以及执行该训练方法的***。
背景技术
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
在AI领域中,深度学习是一种基于深层次的神经网络算法的学习技术。深度学习模型包括前向传播(forward propagation,FP)计算和反向传播(back propagation,BP)计算。其中,FP计算用于根据每一层神经元相对应的参数矩阵进行每一层神经元的输出计算,BP计算用于根据FP计算产生的预测值和先验知识之间的误差计算每一层神经元相对应的梯度,以便于在下一次迭代的FP计算中根据BP计算出的梯度对每一层神经元相对应的参数矩阵进行修正。
由于训练数据往往比较庞大,深度学习模型的训练一般采用分布式的方式,采用多个深度学习模型分布式的根据训练数据完成训练,因此各个深度学习模型之间需要同步每次BP计算生成的梯度,以便实现同步训练。传统的分布式深度学习模型的训练过程中的梯度同步的方法导致训练的效率低下。
发明内容
本申请提供一种深度学习模型的训练方法,通过调整本次迭代过程中BP计算得到的梯度传输到参数存储空间的顺序,提高了深度学习模型的训练效率。
第一方面,提供了一种深度学习模型的训练方法,该方法应用于训练***,该训练***包括N个深度学习模型,每个所述深度学习模型包括n层神经元,每个所述深度学习模型的训练过程包括多次迭代,每次迭代包括前向传播FP计算和反向传播BP计算,其中,N为大于1的正整数,n为大于1的正整数,所述方法包括:在所述N个深度学习模型的第j次迭代的BP计算中生成N个第一梯度集合,在生成N个第一梯度集合的过程中调整每一个第一梯度集合包括的梯度的通信顺序,并按照调整之后的每个第一梯度集合包括的梯度的通信顺序,将所述N个第一梯度集合包括的梯度分别发送至所述训练***的参数存储空间,再根据所述参数存储空间中存储的所述N个第一梯度集合获取第二梯度集合,并根据第二梯度集合包括的梯度分别对每个深度学习模型的每一层神经元的参数矩阵进行修正,以用于每个深度学习模型进行第(j+1)次迭代的FP计算。
应理解,每个第一梯度集合包括一个深度学习模型的每一层神经元的参数矩阵对应的梯度,其中,j为大于0的正整数。
还应理解,将按照调整之后的每个第一梯度集合中包括的梯度的通信顺序,将N个第一梯度集合包括的梯度分别发送至训练***的参数存储空间之后,可以分别计算N个深度学***均值。
一种可能的实现方式中,可以对N个第一梯度集合中包括的每一层神经元的梯度进行加权平均的计算,从而可以计算出N个深度学***均值,每一层神经元的参数矩阵对应的梯度平均值形成了第二梯度集合。也就是说,第二梯度集合中包括N个深度学***均值。
上述技术方案中,可以调整本次迭代过程中,由BP计算得到的传输到参数存储空间的传输顺序,可以减少本次迭代过程中深度学习模型的迭代时间,提高深度学习模型的迭代效率。
在一种可能的实现方式中,将第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述参数存储空间,其中,b小于或等于n,a小于b,a为大于0的正整数。
上述技术方案中,将第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述参数存储空间,可以减小本次迭代的BP计算的结束时间与下一次迭代的FP计算的开始时间之间的时间差,从而减少深度学习模型的迭代时间。
在另一种可能的实现方式中,可以根据梯度通信策略调整每个第一梯度集合包括的梯度的通信顺序,其中,梯度通信策略根据以下参数中的至少一个设置:所述深度学习模型和所述参数存储空间之间的通信带宽,所述深度学习模型的各层神经元的参数矩阵对应的梯度的大小,所述深度学习模型的各层神经元在FP计算中所需的时间。
需要说明的是,所述深度学习模型是N个深度学习模型中的任意一个或多个。
具体的,在调整第a层神经元的参数矩阵对应的梯度的发送顺序之前,可以先根据深度学习模块和所述参数存储空间之间的通信带宽,所述第b层神经元的参数矩阵对应的梯度的大小,所述第b层神经元的参数矩阵对应的梯度开始被发送至所述参数存储空间的时刻至所述深度学习模型的第(j+1)次迭代中第b-1层神经元对应的FP计算完毕之间的时间计算梯度通信策略。再根据梯度调整策略将第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述参数存储空间。
需要说明的是,梯度通信策略包括:第一梯度集合中各个梯度传输到参数存储区域的顺序。
上述技术方案中,可以根据深度学习模块和所述参数存储空间之间的通信带宽、深度学习模型的各层神经元的参数矩阵对应的梯度的大小、深度学习模型的各层神经元在FP计算中所需的时间确定梯度通信策略,从而可以根据最优的梯度通信策略调整深度学习模型的第一梯度集合中各个梯度的通信顺序,使得后续的迭代训练的速度更快,提高深度学习模型的训练效率。
在一种可能的实现方式中,调整第a层神经元的参数矩阵对应的梯度在第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送,尽可能的将第b层神经元的参数矩阵对应的梯度在第(j+1)次迭代中的第b-1层神经元完成相对应的FP计算之前发送至参数存储空间。
在另一种可能的实现方式中,所述方法还包括:获取所述深度学习模型的迭代时间;根据所述迭代时间对所述梯度通信策略进行调整。
应理解,获取到的深度学习模型的迭代时间可以是当前迭代过程中BP计算的时间和下一次迭代过程中FP计算的时间之和。即深度学习模型的迭代时间为深度学习模型的第L次迭代的BP计算的时间和第L+1次迭代的FP计算的时间,L为大于j的正整数。
需要说明的是,所述深度学习模型是N个深度学习模型中的任意一个或多个。
上述技术方案中,可以根据反馈的深度学习模型的迭代时间,对深度学习模型的梯度通信策略进行调整,从而可以根据深度学习模型实际的迭代时间确定最优的梯度通信策略,提高深度学习模型的迭代训练速度。
第二方面,提供了一种深度学习模型的训练***,该训练***包括N个深度学习模型、梯度通信模块、梯度更新模块、修正模块和参数存储空间。每个所述深度学习模型包括n层神经元,每个所述深度学习模型的训练过程包括多次迭代,每次迭代包括前向传播FP计算和反向传播BP计算,其中,N为大于1的正整数,n为大于1的正整数;
所述N个深度学习模型的每个深度学习模块,分别用于在第j次迭代的BP计算中生成第一梯度集合,每个第一梯度集合包括所述每个深度学习模型的每一层神经元的参数矩阵对应的梯度,其中,j为大于0的正整数;
所述梯度通信模块,用于调整每个第一梯度集合包括的梯度的通信顺序,并根据调整之后的每个第一梯度集合包括的梯度的通信顺序,将N个所述第一梯度集合包括的梯度分别发送至所述训练***的参数存储空间;
所述梯度更新模块,用于根据所述参数存储空间中存储的N个所述第一梯度集合获取第二梯度集合;
所述修正模块,用于根据所述第二梯度集合包括的梯度分别对每个深度学习模型的每一层神经元的参数矩阵进行修正,以用于每个深度学习模型的第(j+1)次迭代的FP计算。
需要说明的是,梯度通信模块中可以包括两个子模块,一个是调整子模块,用于调整每个第一梯度集合包括的梯度的通信顺序。另一个是通信子模块,用于根据调整之后的每个第一梯度集合包括的梯度的通信顺序,将N个所述第一梯度集合包括的梯度分别发送至所述训练***的参数存储空间。
还需要说明的是,在包括至少一个模型训练服务器和一个参数服务器的分布式模型训练***中,修正模块可以是个参数服务器中的一个模块,也可以是至少一个模型训练服务器中的模块。作为一个示例,修正模块在参数服务器中,该修正模块用于根据所述第二梯度集合包括的梯度分别对所述任一深度学习模型的每一层神经元的参数矩阵进行修正,并将修正后的每一层神经元相对应的参数矩阵存储在该参数服务器的参数存储空间中,以便于至少一个模型训练服务器在下一次迭代的模型训练过程中,从参数存储空间中获取修正之后的参数矩阵。作为另一个示例,修正模块在至少一个模型训练服务器中,至少一个模型训练服务器可以从参数服务器的参数存储空间中获取到第二梯度集合之后,可以根据第二梯度集合对任一深度学习模型的每一层神经元的参数矩阵进行修正,以用于所述训练***的任一深度学习模型的第(j+1)次迭代的FP计算。
上述技术方案中,可以调整本次迭代过程中,由BP计算得到的传输到参数存储空间的传输顺序,可以减少本次迭代过程中深度学习模型的迭代时间,提高深度学习模型的迭代效率。
在一种可能的实现方式中,梯度通信模块具体用于:将第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述参数存储空间,其中,b小于或等于n,a小于b,a为大于0的正整数。
在另一种可能的实现方式中,梯度通信模块具体用于:根据梯度通信策略调整每个第一梯度集合包括的梯度的通信顺序。
其中,所述梯度通信策略根据以下参数中的至少一个设置:所述深度学习模型和所述参数存储空间之间的通信带宽,所述深度学习模型的各层神经元的参数矩阵对应的梯度的大小,所述深度学习模型的每层神经元在FP计算中所需的时间。
需要说明的是,所述深度学习模型是N个深度学习模型中的任意一个或多个。
在另一种可能的实现方式中,所述***还包括反馈模块,
所述反馈模块,用于获取所述深度学习模型的迭代时间反馈至所述梯度通信模块,并将获取到的迭代时间反馈至梯度通信模块。
应理解,获取到的深度学习模型的迭代时间可以是当前迭代过程中BP计算的时间和下一次迭代过程中FP计算的时间之和。
所述梯度通信模块,还用于根据反馈模块反馈的深度学习模型的迭代时间对所述梯度通信策略进行调整。
应理解,在包括至少一个模型训练服务器和一个参数服务器的分布式模型训练***中,反馈模块是至少一个模型训练服务器中每一个模型训练服务器中反馈模块的集合。
第三方面,提供了一种深度学习模型的训练***,所述训练***包括至少一个计算节点,每个计算节点包括存储器和至少一个处理器,所述存储器用于存储程序指令,所述训练***运行时,所述至少一个计算节点的至少一个处理器执行所述存储器中的程序指令以执行第一方面或第一方面中任一种可能的实现方式中的方法。
在一种可能的实现方式中,所述深度学习模型的训练***包括一个参数服务器和至少一个模型训练服务器。其中,一个模型训练服务器可以作为一个计算节点,N个深度学习模块、梯度通信模块可以分别运行于至少一个模型训练服务器中。梯度更新模块可以运行于训练***中的参数服务器中。修正模块可以运行于至少一个模型训练服务器中或也可以运行于参数服务器中。
在一种可能的实现方式中,在包括一个参数服务器和至少一个模型训练服务器的深度学习模型的训练***中,反馈模块运行于至少一个模型训练服务器中。
需要说明的是,在包括一个参数服务器和至少一个模型训练服务器的训练***中,梯度通信模块可以是至少一个模型训练服务器中每一个模型训练服务器中梯度通信模块的集合,修正模块可以是至少一个模型训练服务器中每一个模型训练服务器中修正模块的集合。反馈模块可以是至少一个模型训练服务器中每一个模型训练服务器中反馈模块的集合。
在另一种可能的实现方式中,深度学习模型的训练***包括一个模型训练服务器。其中,一个模型训练服务器中包括至少一个处理器,其中,一个处理器可以作为一个计算节点,N个深度学习模块、梯度通信模块、梯度更新模块、修正模块可以分别运行于至少一个处理器中。
在一种可能的实现方式中,在包括一个模型训练服务器的深度学习模型的训练***中,所述反馈模块运行于一个模型训练服务器的至少一个处理器中。
需要说明的是,在包括一个模型训练服务器的训练***中,梯度通信模块、梯度更新模块、修正模块、反馈模块可以分别是一个模型训练服务器中的至少一个处理器中每个处理器包括的各个上述模块的集合。
第四方面,提供了一种非瞬态的可读存储介质,包括程序指令,当所述程序指令被至少一个计算节点运行时,所述至少一个计算节点执行如第一方面及第一方面中任一种可能的实现方式中的方法。
第五方面,提供了一种计算机程序产品,包括程序指令,当所述程序指令被至少一个计算节点运行时,所述至少一个计算节点执行如第一方面及第一方面中任一种可能的实现方式中的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1是本申请实施例提供的一种深度学习模型100的示意性框图。
图2是本申请实施例提供的一种深度学习模型100的分布式训练***200的示意性结构图。
图3是本申请实施例提供的一种各个模型训练服务器与参数服务器之间进行通信的示意性框图。
图4是本申请实施例提供的一种深度学习模型100的分布式训练***400的示意性结构图。
图5是本申请实施例提供的一种深度学习模型的训练方法的示意性流程图。
图6是本申请实施例提供的一种深度学习模型的训练***的架构示意图。
图7是本申请实施例提供的一种加速训练深度学习模型的方法的示意性流程图。
图8中的(a)是采用本申请实施例提供的加速训练深度学习模型的方法的迭代时间效果对比图。
图8中的(b)是采用本申请实施例提供的加速训练深度学习模型的方法的迭代时间效果对比图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
在AI领域中,深度学习是一种基于深层次的神经网络算法的学习技术。深度学习模型包括输入层、隐含层、输出层,其使用多重非线性变换对数据进行处理。
应理解,神经网络是一种模仿动物神经网络行为特征,这种网络依靠***的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
还应理解,深层次的神经网络(深度学习模型)可以理解为具有多个隐含层的神经网络,这里的“多个”并没有特别的度量标准。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习参数矩阵的过程,其最终目的是得到训练好的深度神经网络的每一层神经元的参数矩阵(每一层神经元的参数矩阵包括该层神经元包括的每个神经元对应的权重)。
下面结合图1,对应用于本申请实施例的一种可能的深度学习模型的训练过程进行详细描述。
图1是本申请实施例提供的一种深度学习模型100的示意性框图。深度学习模型100可以包括输入层110,隐含层120以及输出层130。
应理解,本申请实施例中以隐含层120包括n(n大于1)层神经元作为示例进行说明。
还应理解,输入层110、输出层130以及隐含层120中的每一层包括一个或多个神经元。图1中以输入层110包括两个神经元、隐含层120中的n层中的每一层均包括三个神经元、输出层130包括一个神经元为例进行说明。
图1所示的深度学习模型100可以是全连接的神经网络,也可以是卷积神经网络(convolutional neural network,CNN)。在每一层的所有神经元与下一层的所有神经元连接(每一层的每一个神经元的权重w均不为0)的情况下,该深度学习模型100是一个全连接的神经网络模型。在每一层的所有神经元不与下一层的所有神经元连接(每一层的每一个神经元上的权重w部分为0)的情况下,该深度学习模型100是一个CNN模型。
参见图1,在深度学习模型100中可以包括前向传播(forward propagation,FP)计算和反向传播(back propagation,BP)计算。
下面对在一个计算节点中进行FP计算的过程进行详细描述。
在FP计算的过程中,获取训练数据,例如输入图像的像素信息,将训练数据作为深度学习模型100输入层110的输入(i1,i2)。输入层110的输入可以在经过隐含层120中的多个神经元之后,从输出层130输出一个预测结果。具体的,隐含层120中的每一层神经元都对应有一个参数矩阵。输入层110的输入与第1层神经元的参数矩阵的乘积作为隐含层120的第1层神经元的输入,该隐含层120的第1层神经元的输入经过第1层神经元中的激活函数(例如,可以是sigmoid函数)之后输出一个第1层神经元的输出值。隐含层120的第1层神经元的输出值与第2层神经元的参数矩阵的乘积作为隐含层120的第2层神经元的输入。同理,以此类推,最终从输出层130输出一个预测结果。
这些参数矩阵中的权重在实际应用中需要在大量的训练中得到修正,通过训练得到的权重形成的各个参数矩阵可以从用户输入的待推理图像中提取像素信息,从而帮助深度学习模型100对该待推理图像进行正确的推理。
在FP计算的第j次迭代过程中,第1层中的第一个神经元的输入为: 第1层中的第一个神经元的输出为:/>第1层中的第二个神经元的输入为:第1层中的第二个神经元的输出为:/>第1层中的第三个神经元的输入为:/>第1层中的第三个神经元的输出为:/>其中,/>为输入为/>的激活函数。
第j次的迭代过程中,第1层中的神经元的输入为:
因此,可以将第1层中的神经元的输入表示为输出可以表示为/>
其中,
j用于表示迭代的次数,一般等于输入层110获得输入(i1,i2)的次数。用于表示在第j次的迭代过程中,第1层神经元的参数矩阵。
第1层中的神经元的输出B1与第2层神经元的参数矩阵的乘积可以作为第2层神经元的输入。因此,FP的第j次的迭代过程中,第2层中的神经元的输入可以表示为 第2层中的神经元的输出可以表示为/>
同理,在FP的第j次的迭代过程中,第i层中的神经元的输入可以表示为 第i层中的神经元的输出可以表示为/>其中,1≤i≤n。
下面对在一个计算节点中进行BP计算的过程进行详细描述。
在训练深度学习模型100的过程中,希望深度学习模型100的输出层130输出的预测值o1尽可能的接近训练数据的先验知识(prior knowledge),先验知识也被称为真实值(ground truth),一般包括由人提供的训练数据对应的预测结果。所以可以通过比较当前的预测值和先验知识,再根据两者之间的差异情况来更新深度学习模型100中每一层的参数矩阵(当然,在第一次更新之前通常会有初始化的过程,即为初始化深度学习模型100的隐含层120的各层神经元对应的参数矩阵)。并采用误差BP算法在训练深度学习模型100的过程中修正深度学习模型100中参数矩阵的权重大小,使得深度学习模型100的误差损失越来越小。
具体地,FP计算过程中产生的预测值和先验知识间可能会有误差,如果输出的预测值大于先验知识,可以调整参数矩阵中的权重,使得输出的预测值低一些。如果输出的预测值小于先验知识,可以调整参数矩阵中的权重,使得输出的预测值高一些。BP计算是以误差为主导的反向运动,旨在得到最优的各层神经元的参数矩阵。
应理解,用户输入的训练数据中可以包括作为输入的训练数据以及由人提供的训练数据对应的预测结果。
作为一个示例,深度学习模型100应用于图像识别领域。深度学习模型100输入的训练数据为图像的像素信息,训练数据所对应的先验知识为该图像的标签“dog”。将训练数据输入到输入层110,经过深度学习模型100的FP计算之后,将输出层130输出的预测值与先验知识比较。例如,如果输出层130输出的预测值为“cat”,则可以根据预测值与先验知识“dog”之间的误差来更新深度学习模型100中每一层的参数矩阵。
在第j次的迭代过程中,BP计算可以计算输出的预测值o1以及先验知识之间的误差E。并可以沿着输出层130、隐含层120、输入层110的方向,根据误差E修正深度学习模型100中每一层神经元的参数矩阵中的权重。具体的,对权重的修正可以是分别计算出参数矩阵中的权重的梯度该梯度/>可以是用误差E对参数矩阵中的权重求导数,其中,1≤i≤n。
深度学习模型100在第(j+1)次迭代中,和第j次迭代过程类似,还是先进行FP计算,再进行BP计算。例如,在第(j+1)次迭代的FP计算过程中,根据第j次迭代的FP计算出的梯度对参数矩阵中的权重进行修正,并根据修正后的参数矩阵计算预测输出值。在第(j+1)次迭代的BP计算过程中,根据第(j+1)次迭代中FP计算出的输出值与先验知识之间的误差E计算参数矩阵中的权重的梯度/>使得在第(j+2)次迭代过程中可以根据/>再次对参数矩阵中的权重进行修正。在多次迭代的过程中不断的修正参数矩阵中的权重,从而实现深度学习模型100预测的输出值尽可能的接近训练数据的先验知识。
具体的,在第(j+1)次迭代中FP计算中,计算第i层中的神经元的输入以及输出时,第i层中的神经元的参数矩阵变成了根据/>计算每一层神经元的输入以及输出的过程请参考上文中第j次迭代的FP计算的描述,此处不再赘述。
需要说明的是,上文中示出的参数矩阵计算公式是一种可能的实现方式,也可以是该公式的其他变形,都在本申请实施例的保护范围之内。
本申请实施例中上述深度学习模型100训练过程(包括FP计算过程以及BP计算过程)可以在包括至少一个计算节点的训练***中完成。该至少一个计算节点可以是至少一个一个模型训练服务器,也可以是一个模型训练服务器中的至少一个处理器。下面将结合图2至图4,对训练深度学习模型100的场景进行描述。
图2是本申请实施例提供的一种深度学习模型100的分布式训练***200的示意性结构图。图2所示的分布式训练***200中可以包括模型训练服务器210、模型训练服务器220、模型训练服务器230、参数服务器240、云存储器250。
一般而言,深度学习模型的精度随着训练数据量增加而上升。但是训练数据量的增加使得计算负荷变大,因此分布式深度学习训练技术应运而生。分布式深度学习训练旨在通过采用多个计算节点来增加计算资源,并通过多个计算节点对训练的模型进行迭代,以提升深度学习模型训练速度。
参见图2,分布式训练***200可以包括至少一个模型训练服务器,其中,一个模型训练服务器可以作为一个计算节点。为了便于描述,图2中以三个模型训练服务器作为示例进行说明。模型训练服务器220以及模型训练服务器230的结构与模型训练服务器210类似,下面对模型训练服务器210进行详细描述。
(1)模型训练服务器210:
包括:至少一个处理器、存储器213、输入输出接口214、通信接口215、总线216。
其中,至少一个处理器可以与存储器213连接。该存储器213可以用于存储该程序代码和训练数据。该存储器213可以是至少一个处理器内部的存储单元,也可以是与至少一个处理器独立的外部存储单元,还可以是包括与至少一个处理器内部的存储单元和与至少一个处理器独立的外部存储单元的部件。
存储器213可以是固态硬盘(solid state drive,SSD),也可以是硬盘驱动器(hard disk drive,HDD),还可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)等。
该至少一个处理器可以从存储器213获取程序代码以及训练数据,并对深度学习模型100进行训练。作为示例而非限定,至少一个处理器可以根据程序代码以及训练数据进行迭代计算(例如,进行如图1所示的FP计算以及BP计算),还可以在分布式训练***200中,将BP计算出的参数矩阵中的权重的梯度发送(push)至参数服务器240。
具体的,至少一个处理器可以包括两类处理器。其中,一类处理器包括至少一个数据处理器211,另一类处理器包括至少一个迭代处理器212。作为一个示例而非限定,数据处理器211可以是中央处理单元(central processing unit,CPU),迭代处理器212可以是嵌入式神经网络处理器(neural-network process units,NPU),也可以是图像处理器(graphics processing unit,GPU)。
其中,迭代处理器212中运行有深度学习模型100,并在对深度学习模型100进行BP计算中,计算出每一层的神经元的参数矩阵中权重的梯度数据处理器211可以用于将BP计算出的梯度/>发送(push)至参数服务器240。
数据处理器211中可以运行有梯度通信模块2111,迭代处理器212中可以运行有深度学习模块100。可选的,迭代处理器212中可以运行有反馈模块2121。修正模块可以运行于数据处理器211中,也可以运行于参数服务器240中,例如,数据处理器211中运行有修正模块2112,又如,参数服务器240的数据处理器241中运行有修正模块2412。具体的有关数据处理器211中运行的各个模块,请参考图6中的描述,此处不再赘述。
可选的,模型训练服务器210还可以包括总线216。其中,存储器213、输入输出接口214、通信接口215可以通过总线216与至少一个处理器(例如,数据处理器211、迭代处理器212)连接。总线216可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线216可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
(2)参数服务器240:
包括:至少一个数据处理器241、存储器243、输入输出接口244、通信接口245、总线246。
其中,存储器243中的参数存储空间可以存储有模型训练服务器210、模型训练服务器220、模型训练服务器230分别发送的权重的梯度
至少一个数据处理器241可以与存储器243连接,数据处理器241例如可以是CPU。至少一个数据处理器241可以从存储器243中获取模型训练服务器210、模型训练服务器220、模型训练服务器230分别发送的梯度对多个模型训练服务器通过处理器push的多个梯度/>进行处理,并可以将处理得到的梯度/>存储至存储器243。作为一个示例,至少一个数据处理器241可以对多个模型训练服务器分别push的多个梯度/>进行加权平均计算以得到/>并将梯度平均值/>存储至存储器243。根据多个梯度/>获得梯度/>的过程除了采用加权平均计算之外,还可以采用其他算法。
数据处理器241中可以运行有梯度更新模块2411。可选的,数据处理器241中还可以运行有修正模块242。具体的有关数据处理器241中运行的各个模块,请参考图6中的描述,此处不再赘述。
需要说明的是,本申请实施例在第j次迭代过程中,参数服务器240中的数据处理器241计算出梯度平均值之后,在第(j+1)次迭代中FP计算中,还需要根据梯度平均值/>修正第(j+1)次迭代中参数矩阵中的/>并将/>存入存储器243的参数存储空间以供模型训练服务器210、模型训练服务器220、模型训练服务器230在第(j+1)轮训练中使用。
作为一个示例,可以由参数服务器240中的至少一个数据处理器241计算并存储至存储器243中,第(j+1)次迭代的FP计算中,多个模型训练服务器可以从存储器243中直接获取(pull)/>作为另一个示例,可以由模型训练服务器210中的处理器212计算在第(j+1)次迭代的FP计算中,迭代处理器212从存储器243中pull计算出的梯度平均值/>迭代处理器212根据/>计算第(j+1)次迭代中参数矩阵中的/>并存储在存储器243中,以便于模型训练服务器210在第(j+1)轮训练中使用。
可选的,在一些实施例中,参数服务器240中还可以包括迭代处理器242,该迭代处理器242中可以运行有深度学习模型100。作为一个示例,迭代处理器242可以是NPU,也可以是GPU。
需要说明的是,迭代处理器242也可以根据模型训练服务器210、模型训练服务器220、模型训练服务器230分别发送的权重的梯度计算梯度平均值/>并将计算出的梯度平均值/>存储至存储器243。迭代处理器242还可以根据/>计算出第(j+1)次迭代中参数矩阵中的/>并将/>存储至存储器243中,以便于模型训练服务器210、模型训练服务器220、模型训练服务器230在第(j+1)轮训练中使用。
(3)云存储器250:
可选,在一些实施例中,***200还可以包括云存储器250。云存储器250可以作为外部存储器,用户可以将程序代码和训练数据存储在该外部存储器上。以模型训练服务器210为例,至少一个处理器在运行过程中,可以先将云存储器250中存储的程序代码和数据存储在存储器213中,以便于至少一个处理可以从存储器213获取程序代码以及训练数据,并可以根据程序代码和训练数据对深度学习模型100进行训练。
需要说明的是,云存储器250中存储的数据可以包括训练数据、该训练数据相对应的先验知识以及各个深度学习训练模型100的隐含层120中的每一层的神经元所对应的参数矩阵的初始值等。
下面结合图3,对图2所示的***200中各个模型训练服务器与参数服务器240之间进行通信的过程进行进一步的详细说明。
需要说明的是,为了便于描述,图3中没有详细画出多个模型训练服务器以及参数服务器240的内部结构图,具体的请参考图2中的描述,此处不再赘述。
参见图3,以对深度学习模型100进行第j次迭代和第(j+1)次迭代的训练过程为例。在第j次迭代的训练过程中,模型训练服务器210在BP计算中,至少一个数据处理器211可以将至少一个迭代处理器212计算出的第i隐含层的神经元上所对应的梯度(1)push到参数服务器240的存储器243中。同样的,模型训练服务器220可以将在BP计算中,至少一个数据处理器可以将计算出的梯度/>(2)push到参数服务器240中的存储器243中,模型训练服务器230中的至少一个数据处理器可以将计算出的梯度/>(3)push到参数服务器240的存储器243中。
参数服务器240中的至少一个迭代处理器242可以从存储器243中获取存储的(1)、/>(2)、/>(3),根据/>(1)、/>(2)、/>(3)计算出梯度平均值/>并可以将/>存入存储器243的参数存储空间以供模型训练服务器210、模型训练服务器220、模型训练服务器230在第(j+1)轮训练中使用。具体的计算/>的过程请参考图2对应的实施例。
因此,存储器243的参数存储空间中存储的参数包括:(1)、/>(2)、/>(3)、
可选的,在一些实施例中,至少一个迭代处理器242还可以从存储器243中获取存储的根据/>计算出第(j+1)次迭代中参数矩阵中的/>并存储在存储器243中,以便于模型训练服务器210在第(j+1)轮训练中根据/>进行BP计算。因此,在一些实施例中,存储器243的参数存储空间中还存储有:/>
在对深度学习模型100进行第(j+1)次迭代训练的BP计算过程中,多个模型训练服务器可以从参数服务器中获取存储的参数,并通过输入值(训练数据)以及参数矩阵计算预测的输出值。作为一个示例,模型训练服务器210在BP计算中从参数服务器240中的存储器243pull存储的/>根据/>计算出第(j+1)次迭代中第i隐含层中的神经元多对应的参数矩阵/>并通过输入值以及参数矩阵/>计算预测的输出值。同样的,模型训练服务器220在BP计算中从参数服务器240中pull存储的/>模型训练服务器230在BP计算中从参数服务器240中pull存储的/>作为另一个示例,如果参数服务器240中的存储器243中存储有/>模型训练服务器210、模型训练服务器220、模型训练服务器230在BP计算中可以分别从参数服务器242中pull存储的/>
下面结合图4,以一个分布式训练***中包括一个模型训练服务器,其中,一个模型训练服务器包括至少一个处理器,该一个处理器可以作为一个计算节点,对训练深度学习模型100的场景进行详细描述。
图4是本申请实施例提供的一种深度学习模型400的分布式训练***400的示意性结构图。如图4所示,分布式训练***400可以包括:模型训练服务器410。
其中,模型训练服务器410中可以包括:至少一个处理器、存储器414、输入输出接口415、通信接口416、总线417。
至少一个处理器可以与存储器414连接。该存储器414可以用于存储该程序代码和训练数据。该至少一个处理器可以从存储器414获取程序代码以及训练数据,并对深度学习模型100进行训练。
至少一个处理器可以包括两类处理器。其中,一类处理器包括至少一个数据处理器411,另一类处理器包括至少一个迭代处理器。作为一个示例而非限定,数据处理器411可以是CPU,迭代处理器可以是NPU,也可以是GPU。
应理解,模型训练服务器410中可以包括至少一个迭代处理器,为了便于描述,图4中以迭代处理器412和迭代处理器413作为示例进行说明。
迭代处理器412和迭代处理器413中分别运行有深度学习模型100,并在对深度学习模型100进行BP计算中,可以分别计算出每一层的神经元的参数矩阵中权重的梯度并分别将计算出的梯度/>通过总线417存储至存储器414中。
可选的,在一些实施例中,迭代处理器412中还可以运行有反馈模块4121,同样的,迭代处理器413中还可以运行有反馈模块4131。具体的有关迭代处理器412、迭代处理器413中运行的反馈模块,请参考图6中的描述,此处不再赘述。
至少一个数据处理器411中可以运行有梯度通信模块4111、梯度更新模块4112、修正模块4113,具体的有关数据处理器411中运行的各个模块,请参考图6中的描述,此处不再赘述。
至少一个数据处理器411还可以通过总线417从存储器414中获取迭代处理器412、迭代处理器413存储的梯度之后,可以根据迭代处理器412、迭代处理器413计算出的多个梯度/>计算梯度平均值/>并通过总线417将梯度平均值/>存储至存储器414中,以便于迭代处理器412、迭代处理器413在第(j+1)轮训练中使用。
具体的,在第j次迭代的BP计算过程中,迭代处理器412可以计算出深度学***均值/>并通过总线417将/>存储至存储器414的参数存储空间中。在第(j+1)次迭代中FP的计算过程中,迭代处理器412、迭代处理器413可以分别通过总线417从存储器414的参数存储空间中获取梯度平均值/>根据梯度平均值/>计算第(j+1)次迭代中参数矩阵中的/>并根据修正之后的参数矩阵/>进行FP计算。
可选的,在一些实施例中,数据处理器411还可以通过总线417从存储器414的参数存储空间中获取存储的梯度平均值根据梯度平均值/>计算第(j+1)次迭代中参数矩阵中的/>并将/>存储至存储器414的参数存储空间中。以便于在第(j+1)次迭代中,迭代处理器412、迭代处理器413可以分别通过总线417从存储器414的参数存储空间中获取并进行FP计算。
可选,在一些实施例中,分布式训练***400还包括云存储器420,其中,云存储器420与模型训练服务器410连接。云存储器420可以作为外部存储器,用户可以将程序代码和训练数据存储在该外部存储器上。模型训练服务器410中的至少一个处理器在运行过程中,可以先将云存储器420中存储的程序代码和训练数据存储在存储器414中,以便于至少一个处理器可以从存储器414获取程序代码以及训练数据,并可以根据程序代码和训练数据对深度学习模型100进行迭代训练。
上文的图2至图4中详细描述了在分布式训练***200或分布式训练***400中训练深度学***均值/>或参数矩阵/>因此,在下一次迭代的FP计算中,深度学习模型需要等待将第1层神经元上的参数矩阵对应的梯度被传输至参数存储空间之后,才会开始下一次迭代的FP计算。如果在当前迭代的BP计算中,按照每一层神经元的梯度生成的顺序(/>至/>)将梯度依次发送至参数存储空间,深度学习模型开始下一次迭代的时间较长,其迭代训练的效率较低。
本申请实施例提出的一种深度学习模型的训练方法,可以调整本次迭代过程中,由BP计算得到的传输到参数存储空间的传输顺序,减少深度学习训练模型每次迭代的通信时间,提高深度学习模型训练的效率。
下面结合图5至图7,对本申请实施例中对深度学习模型进行加速训练的过程进行进一步的详细说明。
图5是本申请实施例提供的一种训练深度学习模型的方法的示意性流程图,该方法可以包括步骤510-550,下面对步骤510-550进行详细描述。
步骤510:N个深度学习模型在第j次迭代的BP计算中分别生成N个第一梯度集合。
本申请实施例中训练***可以包括N个深度学习模型,其中,N为大于0的正整数。每个深度学习模型的训练过程可以包括多次迭代,每次迭代的训练过程中可以包括FB计算和BP计算。
应理解,训练***可以是如图2所示的分布式训练***200,也可以是如图4所示的分布式训练***400。
在第j次迭代的BP计算中,每一个深度学习模型按照从第n层神经元到第1层神经元的方向分别计算出每一层神经元对应的梯度,并形成第一梯度集合,其中第i层神经元对应的梯度为i为大于0小于或等于n的正整数。其中,任意一个第一梯度集合中可以包括:深度学习模型的n层神经元中每一层神经元所对应的参数矩阵的梯度/>即包括n个梯度
步骤520:根据训练元信息确定梯度调整策略。
在步骤510开始之前,梯度通信模块中的调整子模块可以根据用户输入的训练元信息中包括的参数确定梯度调整策略,以便于梯度通信模块中的通信子模块基于确定的梯度调整策略,将N个所述第一梯度集合包括的梯度分别发送至参数存储空间。
训练元信息中可以包括以下参数之任一:所述深度学习模型和所述参数存储空间之间的通信带宽,所述深度学习模型的各层神经元的参数矩阵对应的梯度的大小,所述深度学习模型的各层神经元在FP计算中所需的时间。
应理解,可以根据上述参数中的至少一个确定梯度通信策略。该梯度通信策略包括第一梯度集合中各个梯度传输到参数存储区域的顺序。下面会结合图6至图7进行详细描述,此处不再赘述。
值得说明的是,步骤510和步骤520之间并无先后顺序关系,可以先执行步骤510,再执行步骤520,也可以先执行步骤520,再执行步骤510,或者,可以同时执行步骤510和步骤520,本申请实施例对此不作具体限定。
步骤530:在生成第一梯度集合的过程中,调整第a层神经元所对应的传输到参数存储空间的传输顺序。
本申请实施例中可以在步骤510生成第一梯度集合的过程中,基于步骤520中确定的梯度通信策略将第a层神经元参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述参数存储空间,其中,b小于或等于n,a小于b,a为大于0的正整数。
例如,如果梯度通信策略指示按照 的顺序将梯度发送至参数存储空间。那么可以在生成/>后先暂不传输/>等待/>生成后传输/>等待/>生成后传输/>依次类推,直至/>生成并被传输至参数存储空间后,再将之前生成的/>发送至参数存储空间。因此,对第一梯度集合中包括的梯度的传输顺序的调整无须等待第一梯度集合中的全部梯度生成后再执行。/>
以图2所示的分布式训练***200为例。模型训练服务器210中的迭代处理器212中,深度学习模型100的深度学习模块可以在第j次迭代BP计算中生成第一梯度集合,并可以在生成第一梯度集合的过程中,将计算出的神经元的参数矩阵对应的梯度存储至存储器213中。数据处理器211中的梯度通信模块用于确定梯度通信策略,该梯度通信策略用于表示每个第一梯度集合包括的梯度的通信顺序,梯度通信模块基于确定的梯度通信策略,将存储在存储器213中的第一梯度集合包括的第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至参数服务器240的存储器243中的参数存储空间之前发送至所述参数存储空间。
以图4所示的模型训练服务器410为例。模型训练服务器410中的数据处理器411中的迭代处理器412中,深度学习模型100的深度学习模块可以在第j次迭代BP计算中生成第一梯度集合,并可以在生成第一梯度集合的过程中,将计算出的神经元的参数矩阵对应的梯度存储至内存4121。数据处理器411中的梯度通信模块基于确定的梯度通信策略将存储在内存4121中的第一梯度集合包括的第a层神经元参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至存储器414的参数存储空间之前发送至所述参数存储空间。
应理解,图2所示的***200中,梯度通信模块可以是***200中至少一个模型训练服务器中每一个模型训练服务器的梯度通信模块的集合。
还应理解,梯度通信模块可以包括两个子模块,一个是调整子模块,用于确定梯度调整策略。另一个是通信子模块,用于根据梯度调整策略将N个所述第一梯度集合包括的梯度分别发送至参数存储空间。
步骤540:在第j+1次迭代过程中,每一个深度学习模型分别从参数存储空间中获取第二梯度集合。
以图2所示的***200为例。参数服务器240中数据处理器241中的梯度更新模块2411根据存储器243的参数存储空间中存储的N个所述第一梯度集合获取第二梯度集合。
以图4所示的模型训练服务器410为例。模型训练服务器410中数据处理器411中的梯度更新模块2411根据存储器414的参数存储空间中存储的N个所述第一梯度集合获取第二梯度集合。
本申请实施例中,将按照调整之后的每个第一梯度集合中包括的梯度的通信顺序,将N个第一梯度集合包括的梯度分别发送至训练***的参数存储空间之后,可以分别计算N个深度学***均值。
作为一个示例,可以对N个第一梯度集合中包括的每一层神经元的梯度进行加权平均的计算,从而可以计算出N个深度学***均值,每一层神经元的参数矩阵对应的梯度平均值形成了第二梯度集合。也就是说,第二梯度集合中包括N个深度学***均值。
步骤550:每一个深度学习模型在第j+1次迭代中,根据第二梯度集合进行FP计算。
本申请实施例中,模型训练***可以包括修正模块,用于根据所述第二梯度集合包括的梯度分别对所述任一深度学习模型的每一层神经元的参数矩阵进行修正,以用于所述训练***的任一深度学习模型的第(i+1)次迭代的FP计算。
以图2所示的***200为例。修正模块可以是在参数服务器240的数据处理器241中,也可以在模型训练服务器210的数据处理器211中。
可选的,在一些实施例中,模型训练服务器210的数据处理器211中包括修正模块2112。模型训练服务器210的梯度通信模块2111可以从存储器243中的参数存储空间中获取第二梯度集合,并根据第二梯度集合中的每一层神经元所对应的参数矩阵的梯度平均值,对深度学习模型的每一层神经元的参数矩阵进行修正。使得在下一次迭代的BP计算中,根据修正之后的参数矩阵计算每一层神经元对应的输入输出。
可选的,在另一些实施例中,参数服务器240中的数据处理器241中包括修正模块2411。修正模块2411可以从存储器243中的参数存储空间中获取第二梯度集合,并根据第二梯度集合中的每一层神经元所对应的参数矩阵的梯度平均值,对深度学习模型的每一层神经元的参数矩阵进行修正,并将修正之后的包括参数矩阵的集合存储在存储器243的参数存储空间中。以便于在下一次迭代的BP计算中,模型训练服务器210的梯度通信模块2111可以从存储器243中的参数存储空间中获取修正之后的包括参数矩阵/>集合,并根据集合中的/>计算每一层神经元对应的输入输出。
需要说明的是,图2所示的***200中,修正模块可以是***200中至少一个模型训练服务器中每一个模型训练服务器的修正模块的集合。
以图4所示的模型训练服务器410为例。模型训练服务器410中的数据处理器411可以包括修正模块4113,修正模块4113可以从存储器414中的参数存储空间获取第二梯度集合,并根据第二梯度集合中的每一层神经元所对应的参数矩阵的梯度平均值,对深度学习模型的每一层神经元的参数矩阵进行修正,并将修正之后的包括参数矩阵的集合存储在存储器414的参数存储空间中。以便于在下一次迭代的BP计算中,模型训练服务器410的梯度通信模块4111可以从存储器414中的参数存储空间中获取修正之后的包括参数矩阵集合,并根据集合中的/>计算每一层神经元对应的输入输出。
本申请实施例中,可以在不影响深度学习模型的训练收敛精度的同时,可以调整本次迭代过程中,将BP计算得到的传输到参数存储空间的传输顺序,可以减少本次迭代的通信时间,提高模型训练的效率。
本申请实施例对每个深度学习模型迭代过程中的梯度通信策略不作具体限定。可以是根据经验规则进行设置,也可以是兼容其他方式的梯度通信策略,比如基于强化学习的智能梯度通信策略。下面会结合图6对调整第一梯度集合中包括的n个梯度的通信顺序的具体实现方式进行详细描述。
图6是本申请实施例提供的一种深度学***台侧。
如图6所示,用户侧可以通过接口将深度学***台侧。
其中,训练元信息610中可以包括深度学习模型100和参数存储空间640之间的通信带宽,深度学习模型100的每层神经元的参数矩阵对应的梯度的大小,深度学习模型100的每层神经元在FP计算中所需的时间。训练数据670可以包括作为输入的训练数据以及由人提供的训练数据对应的预测结果。
需要说明的是,深度学***台侧,也可以是云平台侧存储的模型,本申请对此不作具体限定。
云平台侧可以包括:梯度通信模块620、本地存储器630、参数存储空间640、深度学习模型100。
可选的,在一些实施例中,云平台侧还可以包括云存储器610。云存储器610可以存储用户侧发送的深度学习模型100、训练元信息660、训练数据670。
可选的,在一些实施例中,云平台侧还可以包括反馈模块650。
参见图6,云平台侧的梯度通信模块620中可以包括调整子模块621以及通信子模块622。调整子模块621可以用于执行步骤520中的方法,通信子模块622可以用于执行步骤530中的方法。云平台侧的反馈模块650可以用于执行步骤540中的方法。
应理解,平台侧可以对应于图2所示的分布式训练***200或图4所示的分布式训练***400。
下面以图2所示的分布式训练***200为例,对图6所示的云平台侧深度学习模型100的迭代过程进行详细描述。
需要说明的是,对于图2而言,图6所示的梯度通信模块620对应于图2中模型训练服务器210中的梯度通信模块2111以及模型训练服务器220、模型训练服务器230中运行的梯度通信模块的集合。反馈模块650对应于图2中模型训练服务器210中的反馈模块2121和模型训练服务器220、模型训练服务器230中运行的反馈模块的集合。对于图4而言,反馈模块650对应于图4中迭代处理器412中的反馈模块4121和迭代处理器413中的反馈模块4131的集合。
调整子模块621可以根据训练元信息660确定梯度通信策略,具体的请参考步骤520中的描述,此处不再赘述。
在深度学习模型100开始训练时,深度学习模型100中的深度学习模块从云存储器610中获取训练数据670,并根据训练数据670开始模型的迭代训练。在当前迭代的BP计算中,通信子模块622可以用于执行步骤530中的方法。通信子模块622可以根据调整子模块621确定的梯度通信策略将本地存储器630中存储的梯度按照调整之后的顺序发送至参数存储区域640。深度学习模型100在开始下一次迭代的FP计算时,可以从参数存储区域640中获取存储的数据,并根据该数据开始FP计算。具体的请参考步骤530中的描述,此处不再赘述。
应理解,本地存储器630为分布式训练***200中模型训练服务器210中的存储器213和模型训练服务器220、模型训练服务器230中的存储器的集合。
还应理解,参数存储区域640对应于分布式训练***200中参数服务器240中的存储器243。
反馈模块650可以获取深度学习模型100的迭代时间,该迭代时间可以是深度学习模型100在本次迭代的BP计算时间和下一次迭代的FP计算时间。例如,反馈模块650可以获取深度学习模型100的第L次迭代的BP计算的时间和第L+1次迭代的FP计算的时间,L为大于j的正整数。反馈模块650可以将深度学习模型100的迭代时间反馈至梯度通信模块620中的调整子模块621。调整子模块621可以在接收到反馈模块650反馈的深度学习模型100的迭代时间之后,可以对确定的梯度通信策略进行调整,使得后续的迭代训练速度更快。具体的请参考步骤540中的描述,此处不再赘述。
下面以某人脸识别模型resnet50,计算引擎为Tensor Flow作为示例,结合图6对深度学习训练模型的训练方法进行进一步的解释说明。
图7是本申请实施例提供的一种训练深度学习模型的方法的示意性流程图,图7所示的方法可以包括步骤710-730,下面分别对步骤710-730进行详细描述。
应注意,图7的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的图7的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
步骤710:初始化深度学习模型的梯度通信策略。
以人脸识别模型ResNet50(分类数为一万个类)为例。由于该ResNet50人脸模型最后一层(全连接(fully connected,FC)层)神经元上对应的参数矩阵中的参数量为78MB左右,占到了整个模型大小的一半左右。计算出的该层神经元上对应的梯度越大,其所需要的发送至参数存储空间所需要的通信时间也就越长。
因此,在初始化时,假设该ResNet50人脸模型有n层神经元,将模型最后1层的FC层神经元上对应的梯度调整至第1层神经元的参数矩阵对应的梯度/>发送至所述参数存储空间之后传输至参数存储空间。也就是说,在将第1层神经元的参数矩阵对应的梯度/>传输至参数存储空间之后,可以开始启动下一次迭代的FB计算,从而使得在下一次迭代的FB计算的时间段内完成传输最后一层神经元的参数矩阵对应的梯度/>至参数存储空间。
参见图8,图8中的(a)表示的是至少一个深度学习模型100,将第j轮迭代的BP计算出的第一梯度集合中包括的梯度至/>按照从第n层神经元至第1层神经元的顺序依次传输到参数存储空间中。tn表示的是将BP计算出的第n层神经元相对应的梯度/>传输至参数存储空间所需要的通信时间,tn-1表示的是BP计算出的第n层神经元相对应的梯度/>传输至参数存储空间所需要的通信时间,依次类推,t1表示的是BP计算出的第1层神经元相对应的梯度/>传输至参数存储空间所需要的通信时间。触发深度学习模型进行下一次迭代(第j+1轮迭代)的FP计算的时间为第j轮迭代的BP计算中第1层神经元相对应的梯度传输至参数存储空间的时间。参见图8中的(a),从第j轮迭代的BP计算中计算出/>开始至触发深度学习模型进行第j+1次迭代的FP计算的时间不小于T1,其中T1=tn+tn-1+...+t2+t1,也就是说,在经过传输时间T1之后,深度学习模型可以进行下一次迭代的FP计算。
图8中的(b)表示的是至少一个深度学习模型100,按照本申请实施例提供的加速训练深度学习模型的方案,在BP从第n层神经元到第1层神经元计算出相对应的梯度的过程中,可以按照通信调度策略将第n层神经元的参数矩阵对应的梯度/>调整至第1层神经元的参数矩阵对应的梯度发送至所述参数存储空间之后发送至所述参数存储空间。触发深度学习模型进行下一次迭代的FP计算的时间为第j轮迭代的BP计算中第1层神经元相对应的梯度传输至参数存储空间的时间。参见图8中的(b),从第j轮迭代的BP计算中计算出/>开始至触发深度学习模型进行第j+1次迭代的FP计算的时间不小于T2,其中T2=第j轮迭代的BP计算中计算/>所需的时间+tn-1+...+t2+t1,也就是说,在经过传输时间T2之后,深度学习模型可以进行下一次迭代的FP计算。并在t1时间之后,将第n层神经元相对应的梯度/>传输至参数存储空间。
一般而言,由于迭代处理器的性能逐日提升,BP计算梯度的所需的时间会低于计算出来的梯度传输到参数存储空间所需的时间。如果BP计算梯度所需的时间高于计算出来的梯度传输到参数存储空间所需的时间,会就造成上述从第j轮迭代的BP计算中计算出开始至触发深度学习模型进行第j+1次迭代的FP计算的时间大于T1或T2的情况。
由于图8(b)中触发深度学习模型进行下一次迭代的FP计算的时间T2小于图8(a)中触发深度学习模型进行下一次迭代的FP计算的时间T1,因此,本申请实施例提出的一种训练深度学习模型方法可以调整本次迭代过程中,将BP计算得到的传输到参数存储空间的传输顺序,从而减少本次迭代的通信时间,提高模型训练的效率。
步骤720:深度学习模型进行迭代训练。
将上述初始化梯度通信策略写入到图6的梯度通信模块620中的调整子模块621,调整子模块621。通信子模块622按照调整子模块621确定的梯度通信策略,将本地存储器630中存储的第一梯度集合中的梯度发送至参数存储空间640中。
反馈模块650可以从深度学习模型100的深度学习模块中获取深度学习模型100的迭代时间,该迭代时间可以是深度学习模型100在本次迭代的BP计算时间和下一次迭代的FP计算时间。并可以将深度学习模型100的迭代时间反馈至梯度通信模块620中的调整子模块621。
步骤730:深度学习模型中梯度通信策略的调优。
调整子模块621可以在接收到反馈模块650反馈的深度学习模型100的迭代时间之后,可以对确定的梯度通信策略进行调整,使得后续的迭代训练速度更快。经过多次的迭代和梯度通信策略的调整,直到寻找到最优的梯度通信策略,然后在后续的训练步数内采用这个最优的梯度通信策略进行深度学习模型100的迭代训练。
本申请实施例中,在不影响深度学习模型训练收敛精度的同时,仅通过调整梯度的通讯顺序,使得深度学习模型的训练速度有所提升。由于当前深度学习模型基本上都依赖于BP算法(包括随时间反向传播(back propagation through time,BPTT)算法),大多数开源深度学习引擎(如Tensor Flow)也都是基于BP算法实现的,因此本申请实施例提供的深度学习模型训练加速的方法具备广泛的应用价值。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括:程序指令,当所述程序指令在计算机上运行时,使得计算机执行上述各方面中的方法。
本申请实施例还提供了一种计算机可读介质,所述计算机可读介质存储有程序指令,当所述程序指令在计算机上运行时,使得计算机执行上述各方面中的方法。
本申请的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatile disc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmable read-only memory,EPROM)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (8)
1.一种深度学习模型的训练方法,其特征在于,应用所述方法的训练***包括N个深度学习模型,每个深度学习模型包括n层神经元,每个深度学习模型的训练过程包括多次迭代,每次迭代包括前向传播FP计算和反向传播BP计算,其中,N为大于1的正整数,n为大于1的正整数,所述方法包括:
在所述N个深度学习模型的第i次迭代的BP计算中生成N个第一梯度集合,每个第一梯度集合包括一个深度学习模型的每一层神经元的参数矩阵对应的梯度,其中,i为大于0的正整数;
调整每个第一梯度集合包括的梯度的通信顺序;
所述调整每个第一梯度集合包括的梯度的通信顺序,包括:
将每个所述第一梯度集合中包括的第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述训练***的参数存储空间,其中,b小于或等于n,a小于b,a为大于0的正整数;
根据调整之后的每个第一梯度集合包括的梯度的通信顺序,将所述N个第一梯度集合包括的梯度分别发送至所述训练***的参数存储空间;
根据所述参数存储空间中存储的所述N个第一梯度集合获取第二梯度集合,所述第二梯度集合包括所述N个深度学***均值;
根据所述第二梯度集合包括的梯度分别对每个深度学习模型的每一层神经元的参数矩阵进行修正,以用于每个深度学习模型进行第(i+1)次迭代的FP计算。
2.如权利要求1所述的方法,其特征在于,所述将每个所述第一梯度集合中包括的第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述训练***的参数存储空间,包括:
根据梯度通信策略将每个所述第一梯度集合中包括的第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述训练***的参数存储空间;
其中,所述梯度通信策略根据以下参数中的至少一个设置:所述深度学习模型和所述参数存储空间之间的通信带宽,所述深度学习模型的各层神经元的参数矩阵对应的梯度的大小,所述深度学习模型的每层神经元在FP计算中所需的时间。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述深度学习模型的迭代时间,所述迭代时间包括FP计算的时间和BP计算的时间;
根据所述迭代时间对所述梯度通信策略进行调整。
4.一种深度学习模型的训练***,其特征在于,所述训练***包括N个深度学习模型、梯度通信模块、梯度更新模块、修正模块和参数存储空间,每个所述深度学习模型包括n层神经元,每个所述深度学习模型的训练过程包括多次迭代,每次迭代包括前向传播FP计算和反向传播BP计算,其中,N为大于1的正整数,n为大于1的正整数;
所述N个深度学习模型的每个深度学习模块,分别用于在第i次迭代的BP计算中生成第一梯度集合,每个第一梯度集合包括所述每个深度学习模型的每一层神经元的参数矩阵对应的梯度,其中,i为大于0的正整数;
所述梯度通信模块,用于将每个所述第一梯度集合中包括的第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述训练***的参数存储空间,其中,b小于或等于n,a小于b,a为大于0的正整数,并根据调整之后的每个第一梯度集合包括的梯度的通信顺序,将N个所述第一梯度集合包括的梯度分别发送至所述参数存储空间;
所述梯度更新模块,用于根据所述参数存储空间中存储的N个所述第一梯度集合获取第二梯度集合,所述第二梯度集合包括所述N个深度学***均值;
所述修正模块,用于根据所述第二梯度集合包括的梯度分别对每个深度学习模型的每一层神经元的参数矩阵进行修正,以用于每个深度学习模型的第(i+1)次迭代的FP计算。
5.如权利要求4所述的***,其特征在于,所述梯度通信模块用于:
根据梯度通信策略将每个所述第一梯度集合中包括的第a层神经元的参数矩阵对应的梯度调整至第b层神经元的参数矩阵对应的梯度发送至所述参数存储空间之前发送至所述训练***的参数存储空间;
其中,所述梯度通信策略根据以下参数中的至少一个设置:所述深度学习模型和所述参数存储空间之间的通信带宽,所述深度学习模型的各层神经元的参数矩阵对应的梯度的大小,所述深度学习模型的每层神经元在FP计算中所需的时间。
6.如权利要求5所述的***,其特征在于,所述***还包括反馈模块,
所述反馈模块,用于将获取到的所述深度学习模型的迭代时间,所述迭代时间包括FP计算的时间和BP计算的时间反馈至梯度通信模块;
所述梯度通信模块,还用于根据所述迭代时间对所述梯度通信策略进行调整。
7.一种深度学习模型的训练***,其特征在于,所述训练***包括至少一个计算节点,每个计算节点包括存储器和至少一个处理器,所述存储器用于存储程序指令,所述训练***运行时,所述至少一个计算节点的至少一个处理器执行所述存储器中的程序指令以执行权利要求1至3中任一所述方法的操作步骤。
8.一种非瞬态的可读存储介质,其特征在于,包括程序指令,当所述程序指令被至少一个计算节点运行时,所述至少一个计算节点执行如权利要求1至3中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910041235 | 2019-01-16 | ||
CN2019100412358 | 2019-01-16 | ||
PCT/CN2019/072895 WO2020147142A1 (zh) | 2019-01-16 | 2019-01-24 | 一种深度学习模型的训练方法、*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111788585A CN111788585A (zh) | 2020-10-16 |
CN111788585B true CN111788585B (zh) | 2024-04-12 |
Family
ID=71613070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980000128.9A Active CN111788585B (zh) | 2019-01-16 | 2019-01-24 | 一种深度学习模型的训练方法、*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210342696A1 (zh) |
EP (1) | EP3889846A4 (zh) |
CN (1) | CN111788585B (zh) |
WO (1) | WO2020147142A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111935179B (zh) * | 2020-09-23 | 2021-01-12 | 支付宝(杭州)信息技术有限公司 | 一种基于可信执行环境的模型训练方法和装置 |
CN112329941B (zh) * | 2020-11-04 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 深度学习模型的更新方法及装置 |
CN112949853B (zh) * | 2021-02-23 | 2024-04-05 | 北京金山云网络技术有限公司 | 深度学习模型的训练方法、***、装置及设备 |
CN113419931B (zh) * | 2021-05-24 | 2024-05-17 | 北京达佳互联信息技术有限公司 | 分布式机器学习***的性能指标确定方法及装置 |
CN113642740B (zh) * | 2021-08-12 | 2023-08-01 | 百度在线网络技术(北京)有限公司 | 模型训练方法及装置、电子设备和介质 |
CN115080249B (zh) * | 2022-08-22 | 2022-12-16 | 南京可信区块链与算法经济研究院有限公司 | 一种基于联邦学习的车联网多维资源分配方法及*** |
CN115965074B (zh) * | 2022-11-28 | 2023-11-10 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、数据处理方法、装置和设备 |
CN118261227A (zh) * | 2022-12-28 | 2024-06-28 | 华为技术有限公司 | 一种模型训练方法、装置、设备、***和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273975A (zh) * | 2017-06-15 | 2017-10-20 | 北京大学 | 一种神经网络模型的稀疏化后向传播训练方法 |
CN107292385A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种类Alexnet网络的模型训练方法和装置 |
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化*** |
CN108960410A (zh) * | 2018-06-13 | 2018-12-07 | 华为技术有限公司 | 基于神经网络的参数更新方法、相关平台及计算机存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
US10748064B2 (en) * | 2015-08-27 | 2020-08-18 | International Business Machines Corporation | Deep neural network training with native devices |
US10949746B2 (en) * | 2016-10-27 | 2021-03-16 | International Business Machines Corporation | Efficient parallel training of a network model on multiple graphics processing units |
CN107516127B (zh) * | 2017-08-21 | 2020-06-30 | 山东大学 | 服务机器人自主获取人穿携物品归属语义的方法及*** |
CN108053029B (zh) * | 2017-12-27 | 2021-08-27 | 上海闪易半导体有限公司 | 一种基于存储阵列的神经网络的训练方法 |
-
2019
- 2019-01-24 CN CN201980000128.9A patent/CN111788585B/zh active Active
- 2019-01-24 EP EP19910606.3A patent/EP3889846A4/en active Pending
- 2019-01-24 WO PCT/CN2019/072895 patent/WO2020147142A1/zh unknown
-
2021
- 2021-07-15 US US17/376,722 patent/US20210342696A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107292385A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种类Alexnet网络的模型训练方法和装置 |
CN107273975A (zh) * | 2017-06-15 | 2017-10-20 | 北京大学 | 一种神经网络模型的稀疏化后向传播训练方法 |
CN108491928A (zh) * | 2018-03-29 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 模型参数训练方法、装置、服务器及存储介质 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化*** |
CN108960410A (zh) * | 2018-06-13 | 2018-12-07 | 华为技术有限公司 | 基于神经网络的参数更新方法、相关平台及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
毛勇华 ; 桂小林 ; 李前 ; 贺兴时 ; .深度学习应用技术研究.计算机应用研究.2016,33(11),第3201-3204页. * |
Also Published As
Publication number | Publication date |
---|---|
EP3889846A4 (en) | 2022-06-01 |
US20210342696A1 (en) | 2021-11-04 |
EP3889846A1 (en) | 2021-10-06 |
WO2020147142A1 (zh) | 2020-07-23 |
CN111788585A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111788585B (zh) | 一种深度学习模型的训练方法、*** | |
CN110503192B (zh) | 资源有效的神经架构 | |
US9990558B2 (en) | Generating image features based on robust feature-learning | |
KR102415506B1 (ko) | 뉴럴 네트워크 간소화 방법 및 장치 | |
WO2018099085A1 (zh) | 一种神经网络模型的训练方法、装置及芯片 | |
US20170004399A1 (en) | Learning method and apparatus, and recording medium | |
CN113412494B (zh) | 一种确定传输策略的方法及装置 | |
WO2018204371A1 (en) | System and method for batch-normalized recurrent highway networks | |
WO2018112699A1 (zh) | 人工神经网络反向训练装置和方法 | |
US20230222330A1 (en) | Residual semi-recurrent neural networks | |
CN111480166A (zh) | 从视频中定位目标视频片段的方法和装置 | |
EP3767549A1 (en) | Delivery of compressed neural networks | |
US20230252294A1 (en) | Data processing method, apparatus, and device, and computer-readable storage medium | |
WO2022019913A1 (en) | Systems and methods for generation of machine-learned multitask models | |
JP2023550921A (ja) | ニューラル・ネットワークにおける重みに基づく調節 | |
CN114386565A (zh) | 提供神经网络 | |
WO2019180314A1 (en) | Artificial neural networks | |
CN112165402A (zh) | 一种网络安全态势预测的方法和装置 | |
CN110610231A (zh) | 一种信息处理方法、电子设备和存储介质 | |
CN111602145A (zh) | 卷积神经网络的优化方法及相关产品 | |
KR102090109B1 (ko) | 학습 및 추론 장치 및 그 방법 | |
CN114118357A (zh) | 计算机视觉神经网络中替换激活函数的重训练方法及*** | |
KR20210157826A (ko) | 심층 신경망 구조 학습 및 경량화 방법 | |
US20220343162A1 (en) | Method for structure learning and model compression for deep neural network | |
WO2022242076A1 (en) | Methods and systems for compressing trained neural network and for improving efficiently performing computations of compressed neural network |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220209 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |