发明内容
鉴于上述问题,本发明提供了一种多GPU并行训练深度神经网络的归一化处理方法、装置和系统,用以解决现有技术使用多GPU并行迭代训练深度神经网络的归一化处理中,处理速度慢、处理效率低的问题。
根据本申请的一个方面,提供了一种多GPU并行训练深度神经网络的归一化处理方法,包括:
在多个图像处理单元GPU并行迭代训练相同的深度神经网络得到模型的过程中,中央处理单元CPU接收来自一个GPU的当前并行迭代训练得到的模型的预测精度,并确定预测精度的增长值;
在预测精度的增长值小于预定增长阈值的情况下,将全部GPU划分为至少一个GPU组;在预测精度的增长值大于或等于预定增长阈值的情况下,保持当前的至少一个GPU组;
接收分别来自各GPU的本地归一化参数,根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数;
将确定的各个全局归一化参数发送给对应的GPU组中的各GPU,以使GPU组内的各GPU根据接收到的全局归一化参数进行归一化处理。
根据本申请的一个方面,提供了一种多GPU并行训练深度神经网络的归一化处理方法,包括:
一个图像处理单元GPU在迭代训练深度神经网络的过程中,在进行当前迭代的归一化层处理时,确定归一化层的输入数据的本地归一化参数,并将确定得到的本地归一化参数发送给中央处理单元CPU;其中,该深度神经网络在其他的多个GPU上进行并行迭代训练;
接收来自CPU的全局归一化参数;其中,全局归一化参数是CPU对多个GPU进行分组,并根据所述GPU所在的GPU组内各个GPU发送的本地归一化参数确定得到的;
根据全局归一化参数对归一化层的输入数据进行归一化处理。
根据本申请的一个方面,提供了一种多GPU并行训练深度神经网络的归一化处理装置,包括:
收发单元,在多个图像处理单元GPU并行迭代训练相同的深度神经网络得到模型的过程中,用于接收来自一个GPU的当前并行迭代训练得到的模型的预测精度;接收分别来自各GPU的本地归一化参数;
第一确定单元,用于确定预测精度的增长值;
划分单元,用于在预测精度的增长值小于预定增长阈值的情况下,将全部GPU划分为至少一个GPU组;在预测精度的增长值大于或等于预定增长阈值的情况下,保持当前的至少一个GPU组;
第二确定单元,用于根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数;
收发单元,还用于将确定的各个全局归一化参数发送给对应的GPU组中的各GPU,以使GPU组内的各GPU根据接收到的全局归一化参数进行归一化处理。
根据本申请的一个方面,提供了一种多GPU并行训练深度神经网络的归一化处理装置,包括:
参数确定单元,用于在迭代训练深度神经网络的过程中,在进行当前迭代的归一化层处理时,确定归一化层的输入数据的本地归一化参数,并将确定得到的本地归一化参数发送给中央处理单元CPU;其中,该深度神经网络在其他的多个GPU上进行并行迭代训练;
收发单元,用于接收来自CPU的全局归一化参数;其中,全局归一化参数是CPU对多个GPU进行分组,并根据所述GPU所在的GPU组内各个GPU发送的本地归一化参数确定得到的;
归一化单元,用于根据全局归一化参数对归一化层的输入数据进行归一化处理。
根据本申请的一个方面,提供了一种多GPU并行训练深度神经网络的归一化处理装置,包括一个处理器和至少一个存储器,至少一个存储器中存储有至少一条机器可执行指令,处理器执行至少一条机器可执行指令以执行:
在多个图像处理单元GPU并行迭代训练相同的深度神经网络得到模型的过程中,接收来自一个GPU的当前并行迭代训练得到的模型的预测精度,并确定预测精度的增长值;
在预测精度的增长值小于预定增长阈值的情况下,将全部GPU划分为至少一个GPU组;在预测精度的增长值大于或等于预定增长阈值的情况下,保持当前的至少一个GPU组;
接收分别来自各GPU的本地归一化参数,根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数;
将确定的各个全局归一化参数发送给对应的GPU组中的各GPU,以使GPU组内的各GPU根据接收到的全局归一化参数进行归一化处理。
根据本申请的一个方面,提供了一种多GPU并行训练深度神经网络的归一化处理装置,包括一个处理器和至少一个存储器,至少一个存储器中存储有至少一条机器可执行指令,处理器执行至少一条机器可执行指令以执行:
在迭代训练深度神经网络的过程中,在进行归一化层处理时,确定归一化层的输入数据的本地归一化参数,并将确定得到的本地归一化参数发送给中央处理单元CPU;其中,该深度神经网络在其他的多个GPU上进行并行迭代训练;
接收来自CPU的全局归一化参数;其中,全局归一化参数是CPU对多个GPU进行分组,并根据所述GPU所在的GPU组内各个GPU发送的本地归一化参数确定得到的;
根据全局归一化参数对归一化层的输入数据进行归一化处理。
根据本申请的一个方面,提供了一种多GPU并行训练深度神经网络的归一化处理系统,包括:一个中央处理单元CPU和多个图像处理单元GPU;在多个GPU上并行迭代训练相同的深度神经网络;
CPU用于在多个图像处理单元GPU并行迭代训练相同的深度神经网络得到模型的过程中,接收来自一个GPU的当前并行迭代训练得到的模型的预测精度,并确定预测精度的增长值;在预测精度的增长值小于预定增长阈值的情况下,将全部GPU划分为至少一个GPU组;在预测精度的增长值大于或等于预定增长阈值的情况下,保持当前的至少一个GPU组;接收分别来自各GPU的本地归一化参数,根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数;将确定的各个全局归一化参数发送给对应的GPU组中的各GPU,以使GPU组内的各GPU根据接收到的全局归一化参数进行归一化处理;
一个GPU用于在迭代训练深度神经网络的过程中,在进行归一化层处理时,确定归一化层的输入数据的本地归一化参数,并将确定得到的本地归一化参数发送给中央处理单元CPU;接收来自CPU的全局归一化参数;根据全局归一化参数对归一化层的输入数据进行归一化处理。
根据本申请实施例提供的多GPU并行训练深度神经网络的归一化方法,CPU确定在多GPU上并行迭代训练深度神经网络得到的模型的预测精度的增长值,并在确定预测精度的增长值小于预定的增长阈值的情况下,将全部GPU划分为至少一个GPU组,根据各GPU组内的GPU的本地归一化参数,确定得到各GPU组的全局归一化参数,并将确定得到的全局归一化参数发送给相应的GPU组,GPU组内的各GPU根据接收到的全局归一化参数进行归一化处理;从而能够通过对多个GPU进行分组,并分别确定各组GPU的全局归一化参数,来提高GPU获取归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行迭代训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
针对现有技术使用多GPU并行迭代训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题,本申请实施例提出了一种多GPU并行训练深度神经网络的归一化处理方法、装置和系统。在该方法中,CPU确定在多GPU上并行迭代训练深度神经网络得到的模型的预测精度的增长值,并在确定预测精度的增长值小于预定的增长阈值的情况下,将多个全部GPU划分为至少一个GPU组,根据各GPU组内的GPU的本地归一化参数,确定得到各GPU组的全局归一化参数,并将确定得到的全局归一化参数发送给相应的GPU组,GPU组内的各GPU根据接收到的全局归一化参数进行归一化处理;从而能够通过对多个GPU进行分组,并分别确定各组GPU的全局归一化参数,来提高GPU获取归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行迭代训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
以上是本发明的核心思想,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
图1示出了多GPU并行训练深度神经网络的结构示意图,其中包括CPU 1和多个GPU2,在每个GPU 2上加载有相同的深度神经网络,对多个GPU 2上的深度神经网络进行并行的迭代训练,CPU 1确定多个GPU 2上的并行迭代训练是否收敛,并在迭代训练过程中对多个GPU 2进行同步归一化处理。
CPU 1对多个GPU 2进行同步归一化处理包括:在多个GPU 2并行迭代训练相同的深度神经网络得到模型的过程中,CPU 1接收来自一个GPU 2的当前并行迭代训练得到的模型的预测精度,并确定预测精度的增长值;在预测精度的增长值小于预定增长阈值的情况下,将全部GPU 2划分为至少一个GPU组;在预测精度的增长值大于或等于预定增长阈值的情况下,保持当前的至少一个GPU组;接收分别来自各GPU 2的本地归一化参数,根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数;将确定的各个全局归一化参数发送给对应的GPU组中的各GPU 2,以使GPU组内的各GPU 2根据接收到的全局归一化参数进行归一化处理;
GPU 2在迭代训练深度神经网络的过程中,在进行当前迭代的归一化层处理时,确定归一化层的输入数据的本地归一化参数,并将确定得到的本地归一化参数发送给CPU 1;其中,该深度神经网络在其他的多个GPU 2上进行并行迭代训练;接收来自CPU 1的全局归一化参数;根据全局归一化参数对归一化层的输入数据进行归一化处理。
下面对CPU 1的工作原理进行说明。
图2中示出了本申请实施例提供的多GPU并行训练深度神经网络的归一化处理方法,该方法运行在如图1所示的CPU端,包括:
步骤201、在多个GPU并行迭代训练相同的深度神经网络得到模型的过程中,CPU接收来自一个GPU的当前并行迭代训练得到的模型的预测精度,并确定预测精度的增长值;
步骤203、在预测精度的增长值小于预定增长阈值的情况下,将全部GPU划分为至少一个GPU组;在预测精度的增长值大于或等于预定增长阈值的情况下,保持当前的至少一个GPU组;
步骤205、接收分别来自各GPU的本地归一化参数,根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数;
步骤207、将确定的各个全局归一化参数发送给对应的GPU组中的各GPU,以使GPU组内的各GPU根据接收到的全局归一化参数进行归一化处理。
根据图2所示的处理,CPU能够对多个GPU进行分组,并分别确定和发送各个GPU组的全局归一化参数,来提高GPU接收到归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行迭代训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
并且,CPU确定在多个GPU上并行迭代训练深度神经网络得到的模型的预测精度的增长值,在增长值小于预定的增长阈值的情况下,对GPU进行分组,也即在预测精度增长幅度较小的时候,对GPU进行重分组,在预测精度增长幅度较大的时候,保持GPU的分组状况,能够提高预测精度的增长幅度;从而能够在保证预测精度的增长幅度的情况下,提高模型的训练速度,能够提高模型的训练效率。
下面对图2所示处理的过程进行详细说明。
在多个GPU上对相同设置的深度神经网络进行并行迭代训练的过程中,在迭代训练未收敛的情况下,例如,迭代训练得到的模型的预测精度低于预定的精度阈值的情况下,对多个GPU上的深度神经网络继续执行并行迭代训练。在迭代训练收敛的情况下,例如,迭代训练得到的模型的预测精度大于或等于预定的精度阈值的情况下,停止执行多个GPU上的并行迭代训练,并得到用于预测的模型。
在本申请的一些实施例中,在上述步骤201中,在训练的过程中,CPU接收到的预测精度,可以是每一次迭代训练后得到的模型的预测精度;也可以为了兼顾模型的收敛速度的提高和模型的预测精度的提高,对多个GPU上的深度神经网络执行一组并行迭代训练后得到的模型的预测精度;其中,一组迭代训练中包括预定次数的迭代训练,预定的次数可以根据具体应用场景的需要而具体设定,例如,预定次数可以是预定的与训练数据的数量相关的次数。
在当前的迭代训练是一组迭代训练的情况下,例如,一组迭代训练包括5次迭代训练,则,在各GPU执行完5次迭代训练后,一个GPU将并行迭代训练得到的模型的预测精度发送给CPU。
进一步地,在步骤201中确定预测精度的增长值,在当前的迭代训练为当前的一次迭代训练的情况下,可以包括:确定当前一次迭代训练得到的模型的预测精度和相邻的上一次迭代训练得到的模型的预测精度的差值;
在当前的迭代训练为当前的一组迭代训练的情况下,可以包括:确定当前一组迭代训练得到的模型的预测精度和相邻的上一组迭代训练得到的模型的预测精度的差值。
在上述步骤203中,在本申请的一些实施例中,CPU将上述步骤101中确定的预测精度的增长值与预定增长阈值进行对比,其中,预定增长阈值可以是历史预测值或者是设定值,该历史预测值可以是历史训练得到的模型的预测值;并且在预测精度的增长值小于预定增长阈值的情况下,对多个GPU进行分组,在预测精度的增长值大于或等于预定增长阈值的情况下,保持当前的至少一个GPU组;其中,在并行迭代训练的初始状态下,每个GPU为一个GPU组。
CPU接收到的来自各GPU的本地归一化参数,是各个GPU在当前的迭代训练中,根据归一化层的输入数据(也即归一化层的上一层的输出数据)确定得到的,归一化参数包括归一化层的输入数据的均值和/或均方差。
在本申请的一些实施例中,将多个GPU划分为至少一个GPU组,可以包括如图3所示的处理过程:
步骤2031、根据当前每个GPU组中包括的GPU的数量,确定划分后的每个GPU组中的GPU的数量Gn;其中,在初始的状态下,每个GPU为一个GPU组;
在一些实施例中,根据当前GPU组的数量,确定划分后的GPU组中的GPU的数量,包括:根据公式Gn=i*Gc确定得到划分后的GPU组中的GPU的数量,其中,Gn为分组后各个GPU组中的GPU数量,Gc为当前各个GPU组的GPU的数量,i为预定的系数;并且,在Gn小于总的GPU的数量的情况下,保留Gn;在Gn大于或等于多个GPU的总数的情况下,设置Gn为总的GPU的数量。
步骤2032、根据确定的划分后的GPU组中包括的GPU的数量Gn、以及预定的分组规则,将多个GPU划分为至少一个GPU组。
在一些实施例中,可以根据至少如下的一种分组规则来将多个GPU划分为至少一个GPU组:
规则一、将相邻标识的Gn个GPU划分为一个GPU组;
规则二、按照各GPU反馈本地归一化参数的先后次序,依次将Gn个GPU划分为一个GPU组;
规则三、将随机的Gn个GPU划分为一个GPU组。
在具体的应用场景中,还可以根据具体的应用需求,来确定划分GPU组的规则,本申请这里不进行一一列举。
通过上述步骤201和步骤203的处理,CPU确定在多个GPU上训练得到的模型的预测精度的增长值小于预定的增长阈值的情况下,对多个GPU进行重新分组,能够兼顾训练模型的收敛速度和模型的预测精度的提高。
在上述步骤205中,确定一个GPU组的全局归一化参数的处理,可以包括:将一个GPU组内全部的GPU的本地归一化参数的均值或者加权均值确定为该GPU组的全局归一化参数。
在上述步骤207中,CPU将确定的各全局归一化参数发送给对应的GPU组,使得一个GPU组内的各个CPU可以根据接收到的全局归一化参数来对归一化层的输入数据进行归一化处理。
通过上述处理过程,本申请实施例能够通过对多个GPU进行分组,并分别确定各组GPU的全局归一化参数,来提高GPU接收到归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
并且,CPU确定在多个GPU上并行迭代训练深度神经网络得到的模型的预测精度、以及预测精度的增长值,在增长值小于预定的增长阈值的情况下,对GPU进行分组,也即在预测精度增长幅度较大的时候,保持GPU的分组状况,在预测精度增长幅度较小的时候,对GPU进行重分组,以提高预测精度的增长幅度;从而能够在保证预测精度的增长幅度的情况下,提高模型的训练速度,能够提高模型的训练效率。
下面对图1中GPU的工作原理进行说明。
图4示出了本申请实施例的多GPU并行训练深度神经网络的归一化处理方法的处理流程,该方法运行在如图1所示的每个GPU中,包括:
步骤401、一个GPU在迭代训练深度神经网络的过程中,在进行归一化层处理时,确定归一化层的输入数据的本地归一化参数,并将确定得到的本地归一化参数发送给CPU;其中,该深度神经网络在其他的多个GPU上进行并行迭代训练;
步骤403、接收来自CPU的全局归一化参数;其中,全局归一化参数是CPU对多个GPU进行分组,并根据所述GPU所在的GPU组内各个GPU发送的本地归一化参数确定得到的;
步骤405、根据全局归一化参数对归一化层的输入数据进行归一化处理。
根据如图4所示的处理过程,GPU能够根据CPU反馈的全局归一化参数进行归一化处理,全局归一化参数是CPU对多个GPU进行分组,并根据所述GPU所在的GPU组内各个GPU发送的本地归一化参数确定得到并对应发送的;能够提高GPU接收到归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行迭代训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
在一些实施例中,在GPU上训练的模型未收敛的情况下,多个GPU中的一个GPU需要确定当前迭代训练得到的模型的预测精度,并向CPU反馈当前迭代训练得到的模型的预测精度;在当前迭代训练为当前一次迭代训练的情况下,多个GPU中的一个GPU确定当前一次迭代训练得到的模型的预测精度,并将确定的预测精度作为本地预测精度发给CPU;在当前迭代训练为当前一组迭代训练的情况下,多个GPU中的一个GPU在进行当前一组迭代训练中的最后一次迭代训练后,确定得到的模型的预测精度,并将确定得到的模型的预测精度发送给CPU。
通过上述处理,GPU能够根据CPU针对GPU组确定的全局归一化参数,来进行归一化处理,从而能够提高GPU接收到归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
基于相同的发明构思,本申请实施例还提供了一种多GPU并行训练深度神经网络的归一化处理装置。
图5示出了本申请实施例提供的多GPU并行训练深度神经网络的归一化处理装置,该装置包括在CPU中,该装置包括:
收发单元51,在多个图像处理单元GPU并行迭代训练相同的深度神经网络得到模型的过程中,用于接收来自一个GPU的当前并行迭代训练得到的模型的预测精度;接收分别来自各GPU的本地归一化参数;
第一确定单元52,用于确定预测精度的增长值;
划分单元53,用于在预测精度的增长值小于预定增长阈值的情况下,将全部GPU划分为至少一个GPU组;在预测精度的增长值大于或等于预定增长阈值的情况下,保持当前的至少一个GPU组;
第二确定单元54,用于根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数;
收发单元51,还用于将确定的各个全局归一化参数发送给对应的GPU组中的各GPU,以使GPU组内的各GPU根据接收到的全局归一化参数进行归一化处理。
在一些实施例中,当前并行迭代训练包括当前的一组并行迭代训练;其中,一组并行迭代训练中包括预定迭代次数的并行迭代训练;则,第一确定单元52确定预测精度的增长值,包括:确定当前一组并行迭代训练得到的模型的预测精度和相邻的上一组并行迭代训练得到的模型的预测精度的差值为预测精度的增长值。
在一些实施例中,划分单元53将多个GPU划分为至少一个GPU组,包括:根据当前每个GPU组中包括的GPU的数量,确定划分后的每个GPU组中的GPU的数量Gn;其中,在初始的状态下,每个GPU为一个GPU组;根据确定的划分后的GPU组中包括的GPU的数量Gn、以及预定的分组规则,将多个GPU划分为至少一个GPU组。
在一些实施例中,划分单元53根据当前GPU组的数量,确定划分后的GPU组中的GPU的数量,包括:根据公式Gn=i*Gc确定划分后的GPU组中的GPU的数量,其中,Gn为分组后各个GPU组中的GPU数量,Gc为当前各个GPU组的GPU的数量,i为预定的系数;并且,在Gn小于总的GPU的数量的情况下,保留Gn;在Gn大于或等于多个GPU的总数的情况下,设置Gn为总的GPU的数量。
在一些实施例中,第二确定单元54根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数,包括:将一个GPU组内全部的GPU的本地归一化参数的均值或者加权均值确定为该GPU组的全局归一化参数。
在一些实施例中,第一确定单元52还用于:在模型的预测精度低于预定的精度阈值的情况下,确定预测精度的增长值。
根据如图5所示的装置,本申请实施例能够通过对多个GPU进行分组,并分别确定各组GPU的全局归一化参数,来提高GPU接收到归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
并且,CPU确定在多个GPU上并行迭代训练深度神经网络得到的模型的预测精度、以及预测精度的增长值,在增长值小于预定的增长阈值的情况下,对GPU进行分组,也即在预测精度增长幅度较大的时候,保持GPU的分组状况,在预测精度增长幅度较小的时候,对GPU进行重分组,以提高预测精度的增长幅度;从而能够在保证预测精度的增长幅度的情况下,提高模型的训练速度,能够提高模型的训练效率。
基于相同的发明构思,本申请实施例还提供了一种多GPU并行训练深度神经网络的归一化处理装置。
图6示出了本申请实施例提供的多GPU并行训练深度神经网络的归一化处理装置,该装置包括在GPU中,该装置包括:
参数确定单元61,用于在迭代训练深度神经网络的过程中,在进行当前迭代的归一化层处理时,确定归一化层的输入数据的本地归一化参数;其中,该深度神经网络在其他的多个GPU上进行并行迭代训练;
收发单元62,用于将确定得到的本地归一化参数发送给中央处理单元CPU;接收来自CPU的全局归一化参数;其中,全局归一化参数是CPU对多个GPU进行分组,并根据所述GPU所在的GPU组内各个GPU发送的本地归一化参数确定得到的;
归一化单元63,用于根据全局归一化参数对归一化层的输入数据进行归一化处理。
在一些实施例中,参数确定单元61还用于:在执行完当前迭代训练后,确定训练得到的模型的预测精度;收发单元62,还用于将确定的模型的预测精度发送给CPU。
在一些实施例中,当前迭代训练包括当前的一组迭代训练;其中,一组迭代训练中包括预定次数的迭代训练;则,参数确定单元61确定训练得到的模型的预测精度,包括:在进行了当前的一组迭代训练中的最后一次迭代训练之后,确定训练得到的模型的预测精度。
根据如图6所示的装置,GPU能够根据CPU反馈的全局归一化参数进行归一化处理,全局归一化参数是CPU对多个GPU进行分组,并根据所述GPU所在的GPU组内各个GPU发送的本地归一化参数确定得到的;能够提高GPU接收到归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
基于相同的发明构思,本申请实施例还提供了一种多GPU并行训练深度神经网络的归一化处理装置。
图7示出了本申请实施例提供的多GPU并行训练深度神经网络的归一化处理装置,该装置包括在CPU中,该装置包括一个处理器71和至少一个存储器72,至少一个存储器72中存储有至少一条机器可执行指令,处理器71执行至少一条机器可执行指令以执行:
在多个图像处理单元GPU并行迭代训练相同的深度神经网络得到模型的过程中,接收来自一个GPU的当前并行迭代训练得到的模型的预测精度,并确定预测精度的增长值;
在预测精度的增长值小于预定增长阈值的情况下,将全部GPU划分为至少一个GPU组;在预测精度的增长值大于或等于预定增长阈值的情况下,保持当前的至少一个GPU组;
接收分别来自各GPU的本地归一化参数,根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数;
将确定的各个全局归一化参数发送给对应的GPU组中的各GPU,以使GPU组内的各GPU根据接收到的全局归一化参数进行归一化处理。
在一些实施例中,当前迭代训练包括当前的一组迭代训练;其中,一组迭代训练中包括预定次数的迭代训练;则,处理器71执行至少一条机器可执行指令执行确定预测精度的增长值,包括:确定当前一组并行迭代训练得到的模型的预测精度和相邻的上一组并行迭代训练得到的模型的预测精度的差值为预测精度的增长值。
在一些实施例中,处理器71执行至少一条机器可执行指令执行将全部GPU划分为至少一个GPU组,包括:根据当前每个GPU组中包括的GPU的数量,确定划分后的每个GPU组中的GPU的数量;根据确定的划分后的GPU组中包括的GPU的数量Gn、以及预定的分组规则,将全部GPU划分为至少一个GPU组。
在一些实施例中,处理器71执行至少一条机器可执行指令执行根据当前GPU组的数量,确定划分后的GPU组中的GPU的数量,包括:根据公式Gn=i*Gc确定划分后的GPU组中的GPU的数量,其中,Gn为分组后各个GPU组中的GPU数量,Gc为当前各个GPU组的GPU的数量,i为预定的系数;并且,在Gn小于总的GPU的数量的情况下,保留Gn;在Gn大于或等于多个GPU的总数的情况下,设置Gn为总的GPU的数量。
在一些实施例中,处理器71执行至少一条机器可执行指令执行根据一个GPU组内各个GPU的本地归一化参数,确定该GPU组的全局归一化参数,包括:将一个GPU组内全部的GPU的本地归一化参数的均值或者加权均值确定为该GPU组的全局归一化参数。
在一些实施例中,处理器71执行至少一条机器可执行指令还执行:在模型的预测精度低于预定的精度阈值的情况下,确定预测精度的增长值。
根据如图7所示的装置,本申请实施例能够通过对多个GPU进行分组,并分别确定各组GPU的全局归一化参数,来提高GPU接收到归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
并且,CPU确定在多个GPU上并行迭代训练深度神经网络得到的模型的预测精度、以及预测精度的增长值,在增长值小于预定的增长阈值的情况下,对GPU进行分组,也即在预测精度增长幅度较大的时候,保持GPU的分组状况,在预测精度增长幅度较小的时候,对GPU进行重分组,以提高预测精度的增长幅度;从而能够在保证预测精度的增长幅度的情况下,提高模型的训练速度,能够提高模型的训练效率。
基于相同的发明构思,本申请实施例还提供了一种多GPU并行训练深度神经网络的归一化处理装置。
图8示出了本申请实施例还提供的多GPU并行训练深度神经网络的归一化处理装置,该装置包括在GPU中,该装置包括一个处理器81和至少一个存储器82,至少一个存储器82中存储有至少一条机器可执行指令,处理器81执行至少一条机器可执行指令执行:
在迭代训练深度神经网络的过程中,在进行归一化层处理时,确定归一化层的输入数据的本地归一化参数,并将确定得到的本地归一化参数发送给中央处理单元CPU;其中,该深度神经网络在其他的多个GPU上进行并行迭代训练;
接收来自CPU的全局归一化参数;其中,全局归一化参数是CPU对多个GPU进行分组,并根据所述GPU所在的GPU组内各个GPU发送的本地归一化参数确定得到的;
根据全局归一化参数对归一化层的输入数据进行归一化处理。
在一些实施例中,处理器执行至少一条机器可执行指令还执行:在执行完当前迭代训练后,确定训练得到的模型的预测精度;将确定的模型的预测精度发送给CPU。
在一些实施例中,当前迭代训练包括当前的一组迭代训练;其中,一组迭代训练中包括预定次数的迭代训练;则,
处理器81执行至少一条机器可执行指令执行确定训练得到的模型的预测精度,包括:在进行了当前的一组迭代训练中的最后一次迭代训练之后,确定训练得到的模型的预测精度。
根据如图8所示的装置,GPU能够根据CPU反馈的全局归一化参数进行归一化处理,全局归一化参数是CPU对多个GPU进行分组,并根据所述GPU所在的GPU组内各个GPU发送的本地归一化参数确定得到的;能够提高GPU接收到归一化参数的速度,提高GPU进行归一化处理的速度。从而,能够解决现有技术使用多GPU并行训练深度神经网络的归一化处理中,存在的处理速度慢、处理效率低的问题。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。