数据训练方法、装置及电子设备与流程

文档序号:17491443发布日期:2019-04-23 20:35阅读:239来源:国知局
数据训练方法、装置及电子设备与流程

本申请涉及数据处理领域,具体而言,涉及一种数据训练方法、装置及电子设备。



背景技术:

目前,很多基于深度学习的训练任务都需要数据库等大数据集上预训练过的骨干网络,利用骨干网络提取特征来做做具体的任务,训练时,需要对将骨干网络和新添加的具体任务的网络分支都进行训练。但是这样会带来一些问题:如果需要测量其在一具体任务上的表现时,还需要将在大数据集上预训练一次,这样会带来很大的时间成本。



技术实现要素:

有鉴于此,本申请实施例的目的在于提供一种数据训练方法、装置及电子设备。通过多个训练服务器并行进行多个任务的训练可以提高训练效率,另外,在语义分割任务中,引入分类任务联合训练,让训练过程中能够更好地能捕捉数据信息。

第一方面,本申请实施例提供的一种数据训练方法,应用于训练服务器,所述数据训练方法包括:

从数据服务器中获取共享的训练参数进行所属任务的训练,得到所述训练参数的更新量;

将所述训练参数的更新量发送给所述数据服务器;

接收所述数据服务器发送的更新的训练参数,所述更新的训练参数为所述数据服务器根据不同训练服务器进行不同任务训练时得到的对应的训练参数的更新量计算得到的参数。

可选地,从数据服务器中获取共享的训练参数进行所属任务的训练,得到所述训练参数的更新量的步骤,包括:

获得所属任务所需的批处理的输入数据;

根据所述输入数据前向传播经过批重归一化得到输出数据;

根据所述输出数据后向传播训练得到所述训练参数的梯度;

根据所述训练参数的梯度计算得到所述训练参数的更新量。

可选地,所述根据所述输入数据前向传播经过批重归一化得到输出数据的步骤,包括:

根据输入数据计算局部平均和局部方差;

根据所述局部平均及当前的局部滑动平均进行计算,得到更新的局部滑动平均;

根据所述局部方差及当前的局部方差进行计算,得到更新的局部滑动方差;

将所述局部滑动平均及所述局部滑动方差发送给所述数据服务器,以使所述数据服务器根据所述局部滑动平均和所述局部滑动方差对全局滑动平均和全局滑动方差进行更新,得到更新的全局滑动平均和更新的全局滑动方差;

接收所述数据服务器发送的所述更新的全局滑动平均和所述更新的全局滑动方差;

将所述更新的全局滑动平均、所述更新的全局滑动方差、所述局部平均及所述局部方差计算得到输出数据。

可选地,所述任务包括分类任务,所述从数据服务器中获取共享的训练参数进行所属任务的训练,得到所述训练参数的更新量的步骤,包括:

从数据服务器中获取共享的训练参数进行分类训练,得到所述训练参数的第一更新量。

可选地,所述任务包括语义分割任务,所述从数据服务器中获取共享的训练参数进行所属任务的训练,得到所述训练参数的更新量的步骤,包括:

从数据服务器中获取共享的训练参数进行语义分割训练,得到所述训练参数的第二更新量。

第二方面,本申请实施例提供一种数据训练方法,应用于数据服务器,所述数据训练方法包括:

接收第一训练服务器和第二训练服务器发送的训练参数的第一更新量和第二更新量,所述第一训练服务器和所述第二训练服务器用于根据训练参数进行不同的所属任务的训练;

将接收到的所述训练参数对应的所述第一更新量和所述第二更新量进行计算,得到总更新量;

使用所述训练参数的总更新量更新当前存储的训练参数,将更新后的训练参数分发给所述第一训练服务器和/或第二训练服务器。

可选地,所述方法还包括:

接收所述第一训练服务器和所述第二训练服务器发送的局部滑动平均和局部滑动方差;

根据所有的所述局部滑动平均进行计算,得到更新的全局滑动平均;

根据所有的所述局部滑动方差计算,得到更新的全局滑动方差;

将所述更新的全局滑动平均和所述更新的全局滑动方差发送给所述第一训练服务器和所述第二训练服务器,以使所述第一训练服务器和所述第二训练服务器根据所述更新的全局滑动平均和所述更新的全局滑动方差计算所述第一更新量或第二更新量。

可选地,所述接收第一训练服务器和第二训练服务器发送的训练参数的第一更新量和第二更新量的步骤,包括:

接收所述第一训练服务器发送的所述训练参数的第一更新量,所述第一更新量为所述第一训练服务器根据训练参数进行分类训练得到的更新量;

接收所述第二训练服务器发送的所述训练参数的第二更新量,所述第二更新量为第二训练服务器根据训练参数进行语义分割训练得到的更新量。

第三方面,本申请实施例提供一种数据训练装置,应用于训练服务器,所述数据训练装置包括:

训练模块,用于从数据服务器中获取共享的训练参数进行所属任务的训练,得到所述训练参数的更新量;

发送模块,用于将所述训练参数的更新量发送给数据服务器;

第一接收模块,用于接收所述数据服务器发送的更新的训练参数,所述更新的训练参数为所述数据服务器根据不同训练服务器进行不同任务训练时得到的对应的训练参数的更新量计算得到的参数。

第四方面,本申请实施例提供一种数据训练装置,应用于数据服务器,所述数据训练装置包括:

第二接收模块,用于接收第一训练服务器和第二训练服务器发送的训练参数的第一更新量和第二更新量,所述第一训练服务器和所述第二训练服务器用于根据训练参数进行不同的所属任务的训练;

计算模块,用于将接收到的所述训练参数对应的所述第一更新量和所述第二更新量进行计算,得到总更新量;

更新模块,用于使用所述训练参数的总更新量更新当前存储的训练参数,将更新后的训练参数分发给所述第一训练服务器和/或第二训练服务器。

第五方面,本申请实施例还提供一种数据训练方法,应用于计算机集群,所述计算机集群中包括多个训练服务器及数据服务器;所述训练服务器包括第一训练服务器和第二训练服务器,所述数据训练方法包括:

所述第一训练服务器从数据服务器中获取共享的训练参数进行所属任务训练,得到所述训练参数的第一更新量;

所述第二训练服务器从数据服务器中获取共享的训练参数进行所属任务训练,得到所述训练参数的第二更新量;

所述第一训练服务器将所述训练参数的所述第一更新量发送给所述数据服务器;

所述第二训练服务器将所述训练参数的所述第二更新量发送给所述数据服务器;

所述数据服务器将收到的对应训练参数的所述第一更新量和所述第二更新量进行计算,得到总更新量;

所述数据服务器使用所述总更新量更新所述数据服务器中当前存储的训练参数,将更新后的训练参数用于下次再次分发给所述第一训练服务器和/或第二训练服务器。

第六方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述的方法的步骤。

第七方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述的方法的步骤。

与现有技术相比,本申请实施例的数据训练方法、装置及电子设备,通过训练服务器对根据训练数据对其所属任务进行训练,从而得到训练参数的更新量,再将更新量发送给数据服务器,训练服务器可以再次接收到数据服务器根据不同训练服务器进行不同任务训练时得到的对应的训练参数的更新量计算得到的更新的训练参数,从而不需要训练服务器提前进行预训练,训练服务器可以通过数据服务器共享训练参数,从而也能够捕捉所需的特征信息,使训练出来的模型能够更好地实现识别。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的计算机集群的运行环境示意图。

图2为本申请实施例提供的电子设备的方框示意图。

图3为本申请实施例提供的数据训练方法的流程图。

图4为本申请实施例提供的数据训练方法的参数流向示意图。

图5为本申请实施例提供的数据训练方法的步骤s301的详细流程图。

图6为本申请实施例提供的数据训练方法的另一参数流向示意图。

图7为本申请实施例提供的另一数据训练方法的流程图。

图8为本申请实施例提供的再一数据训练方法的流程图。

图9为本申请实施例提供的数据训练装置的功能模块示意图。

图10为本申请实施例提供的数据训练装置的功能模块示意图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

很多基于深度学习的语义分割技术的训练都需要一个imagenet可视化数据库等大数据集上预训练过的backbone骨干网络,利用backnone骨干网络提取特征来进一步地做语义分割。训练时,将backbone骨干网络和新添加的网络分支一起训练。但是这样的方式可能会带来一些问题:

1.如果设计了一种新的backbone网络,那么要想测量其在语义分割任务上的表现时,还需要将其在imagenet等大数据集上预训练一次,这样会带来很大的时间成本。

2.在语义分割的训练过程中,backbone骨干网络的参数很可能会偏离预训练的参数很远,不能发挥预训练的效果。

基于此,本申请提供的多个实施例,可以缓解上述现有技术带来的问题,具体描述如下。

实施例一

首先,参照图1来描述用于实现本实施例中的数据训练方的实例计算机集群,计算机集群中包括数据服务器110及多个训练服务器,训练服务器与所述数据服务器通信连接;训练服务器包括第一训练服务器120和第二训练服务器130,其中,至少一个第一训练服务器120中存储有分类任务程序;至少一个第二训练服务器130中存储有语义分割任务程序。

进一步地,可以再次参阅图1,上述的计算机集群还可以包括主控服务器140。

在一些实施例中,数据服务器110、第一训练服务器120、第二训练服务器130以及主控服务器140可以是单个服务器,也可以是服务器组。服务器组可以是集中式的,也可以是分布式的(例如,数据服务器110、第一训练服务器120、第二训练服务器130以及主控服务器140可以是分布式系统)。

在一些实施例中,数据服务器110、第一训练服务器120、第二训练服务器130以及主控服务器140也可以是移动设备、平板计算机、膝上型计算机、或机动车辆中的内置设备等,或其任意组合。

上述的计算机集群可以作为数据训练系统。下面就数据训练系统用于对语义分割技术的训练模型进行训练为例进行详细描述。

其中,第一训练服务器120中存储有分类任务程序;第二训练服务器130中存储有语义分割任务程序。

第一训练服务器120用于从数据服务器110中获取共享的训练参数进行所属任务训练,得到所述训练参数的第一更新量。

第二训练服务器130用于从数据服务器中获取共享的训练参数进行所属任务训练,得到所述训练参数的第二更新量。

第一训练服务器120还用于将训练参数的第一更新量发送给数据服务器110。

第二训练服务器130还用于将训练参数的第二更新量发送给数据服务器110。

数据服务器110用于将收到的第一更新量和第二更新量进行计算,得到总更新量。

数据服务器110还用于使用总更新量更新数据服务器中当前存储的训练参数,将更新后的训练参数分发给第一训练服务器120和第二训练服务器130。

进一步地,主控服务器140运行其存储的主程序;第一训练服务器120和第二训练服务器130在主控服务器140运行到设定流程后,启动执行其存储的训练程序进行数据训练。

数据训练系统使用batchrenormalization(批重归一化)的工作机制,多个训练服务器中的任一训练服务器作为一工作节点;数据服务器作为参数服务节点。

进一步地,上述的数据服务器110可以是图1所示的一个独立的服务器,数据服务器110与各个训练服务器通过网络实现通信。

数据服务器也可以是一个逻辑概念,数据服务器的训练参数综合处理任务可以与任一训练任务设置在一个服务器中,由于一个服务器实现一个训练参数综合处理任务和训练任务。该训练参数综合处理任务和训练任务对应的功能模块可以通过数据指令等方式实现数据交换。

可选的,对于一些数据量比较大,计算过程相对复杂的数据训练可以选择一个单独的数据服务器110;对于一些数据量比较小,计算过程相对简单的数据训练可以选择将训练参数综合处理任务与任意一个训练任务设置在一个服务器中,由一个服务器执行。

参照图2来描述用于实现本申请实施例的数据训练方法的示例电子设备200。该示例电子设备200可以是计算机。该示例电子设备200可以是实现本申请思想的数据服务器110、第一训练服务器120、第二训练服务器130、主控服务器140的电子设备200的示例性硬件和软件组件的示意图。

如图2所示,电子设备200包括一个或多个处理器202、一个或多个存储装置204。可选地,电子设备200还可以包括输入装置206、以及输出装置208,这些组件通过总线系统212和/或其它形式的连接机构(未示出)互连。应当注意,图2所示的电子设备200的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。

所述处理器202可以是中央处理单元(cpu)、图形处理单元(gpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备200中的其它组件以执行期望的功能。

所述存储装置204可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器202可以运行所述程序指令,以实现下文所述的本申请提供的各个实施例中期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。

所述输入装置206可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

所述输出装置208可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。

示例性地,用于实现根据本申请实施例的数据训练方法、装置及系统的示例电子系统中的各器件可以集成设置,也可以分散设置,诸如将处理器202、存储装置204、输入装置206和输出装置208集成设置于一体。

实施例二

请参阅图3,是本申请实施例提供的数据训练方法的流程图。本申请实施例中的方法可由图1所示的第一训练服务器120或第二训练服务器130执行。下面将对图3所示的具体流程进行详细阐述。

步骤s301,从数据服务器中获取共享的训练参数进行所属任务的训练,得到所述训练参数的更新量。

如图4所示,在训练任务执行之前,数据服务器将最新的训练参数分发给第一训练服务器和第二训练服务器。

可选地,如图5所示,上述的步骤s301可以包括以下步骤:

步骤s3011,获得所属任务所需的批处理的输入数据。

上述的输入数据可以是预先已经标记的图像数据。

步骤s3012,根据所述输入数据前向传播经过批重归一化得到输出数据。

可选地,上述的步骤s3012可以包括以下步骤a-f。

a、根据输入数据计算局部平均和局部方差。

其中,上述的局部平均是可以将上述的输入数据中的每个值求和后取平均值。上述的局部方差可以是将上述的输入数据中的每个值计算方差得到。

b、根据所述局部平均及当前的局部滑动平均进行计算,得到更新的局部滑动平均。

任一训练服务器中可以仅对其本地的局部滑动平均和局部滑动方差进行更新处理。

c、根据所述局部方差及当前的局部方差进行计算,得到更新的局部滑动方差。

d、将所述局部滑动平均及所述局部滑动方差发送给所述数据服务器,以使所述数据服务器根据所述局部滑动平均和所述局部滑动方差对全局滑动平均和全局滑动方差进行更新,得到更新的全局滑动平均和更新的全局滑动方差。

在一种实施方式中,数据服务器可以将接收到的所有训练服务器发送的局部滑动平均进行加权求和,得到全局滑动平均。在一个实例中,数据服务器可以根据接收到的所有训练服务器发送的局部滑动平均计算平均值,得到全局滑动平均。

在一种实施方式中,数据服务器可以将接收到的所有训练服务器发送的局部滑动方差进行加权求和,得到全局滑动方差。例如,数据服务器可以根据接收到的所有训练服务器发送的局部滑动方差计算平均值,得到全局滑动平均。

e、接收所述数据服务器发送的所述更新的全局滑动平均和所述更新的全局滑动方差;

f、将所述更新的全局滑动平均、所述更新的全局滑动方差、所述局部平均及所述局部方差计算得到输出数据。

上述的输出数据的计算具体可以根据当前训练服务器训练任务当前进行到的位置对应的网络层的函数计算得到。

步骤s3013,根据所述输出数据后向传播训练得到所述训练参数的梯度。

可选地,步骤s3013可以包括:计算设定损失函数对上述的步骤3012经过的函数的导函数;将上述的输出数据输入导函数中进行计算得到上述的训练参数的梯度。

步骤s3014,根据所述训练参数的梯度计算得到所述训练参数的更新量。

在一种实施方式中,可以将当前的训练参数减去设定倍数的梯度,其中上述的设定倍数可表示为更新的步长,该步长可以是预先设定的值。

在一个应用场景中,本实施例中的数据训练方法可以用于语义分割技术对应的模型进行训练。语义分割技术对应的模型中可以包括语义分割任务和分类任务。

在一可选的实施方式中,上述的任务包括分类任务,步骤s301可以包括:从数据服务器中获取共享的训练参数进行分类训练,得到所述训练参数的第一更新量。

上述的从数据服务器中获取共享的训练参数进行分类训练,得到所述训练参数的第一更新量可以包括:

获得分类任务所需的批处理的第一输入数据;

根据上述的第一输入数据前向传播并经过批重归一化得到第一输出数据;

根据所述第一输出数据后向传播训练得到所述训练参数的第一梯度;

根据所述训练参数的第一梯度计算得到训练参数的第一更新量。

上述的根据上述的第一输入数据前向传播并经过批重归一化得到第一输出数据可以包括:

根据第一输入数据计算第一平均和第一方差;

根据所述第一平均及当前的第一滑动平均进行计算,得到更新的第一滑动平均;

根据所述第一方差及当前的第一方差进行计算,得到更新的第一滑动方差。

下面以训练模型中的某一层的一个神经元为例描述计算第一滑动平均和第一滑动方差的方式:

μa:=μa+δ(μabatch-μa);

σa:=σa+δ(σabatch-σa);

其中,μabatch、σabatch表示分类任务对应的第一平均和第一方差;μa、σa表示根据分类任务对应的第一滑动平均和第一滑动方差;ε表示一个极小数,例如,ε可以等于1e-7;xia表示分类任务的某一层的第i个神经元的第一输入数据;n表示分类任务的批处理的输入数据中的样本数。

将所述第一滑动平均及所述第一滑动方差发送给所述数据服务器,以使所述数据服务器根据所述第一滑动平均和所述第一滑动方差对全局滑动平均和全局滑动方差进行更新,得到更新的全局滑动平均和更新的全局滑动方差。

接收所述数据服务器发送的更新的全局滑动平均和更新的全局滑动方差。

根据所述更新的全局滑动平均、所述更新的全局滑动方差、所述第一平均及所述第一方差计算得到第一输出数据。

在一个实例中,计算上述的第一输出数据可以表示为:

其中,r、d表示用于归一化的参数;stop_gradient()表示反向传播算梯度时不对括号里的内容进行计算;clip表示把圆括号()里的数,截到[]里的范围内;yia表示分类任务的某一层的第i个神经元的第一输出数据;γ、β表示某一神经元需要学习的参数。

在另一种可选的实施方式中,上述的任务包括语义分割任务,步骤s301可以包括:从数据服务器中获取共享的训练参数进行语义分割训练,得到所述训练参数的第二更新量。

上述的从数据服务器中获取共享的训练参数进行语义分割训练,得到所述训练参数的第二更新量的步骤,包括:

获得语义分割任务所需的批处理的第二输入数据;

根据所述第二输入数据前向传播并经过批重归一化得到第二输出数据;

根据所述第二输出数据进行后向传播根据所述输出数据训练得到所述训练参数的第二梯度;

根据所述训练参数的第二梯度计算得到训练参数的更新量。

上述的根据所述第二输入数据前向传播并经过批重归一化得到第二输出数据可以包括:

根据所述第二输入数据计算第二平均和第二方差;

根据所述第二平均及当前的第二滑动平均进行计算,得到更新的第二滑动平均;

根据所述第二方差及当前的第二方差进行计算,得到更新的第二滑动方差。

下面以训练模模型中的某一层的一个神经元为例描述计算第二滑动平均和第二滑动方差的方式:

μb:=μb+δ(μbbatch-μb);

σb:=σb+δ(σbbatch-σb);

其中,μbbatch、σbbatch表示语义分割任务对应的第二平均和第二方差;μb、σb表示语义分割任务对应的第二滑动平均和第二滑动方差;ε表示一个极小数,例如,ε可以等于1e-7;xib表示表示第二训练服务器的某一层的第i个神经元的第二输入数据;m表示语义分割任务的批处理的数据的样本数。在一个可选的实例中,上述的语义分割任务的批处理的数据的样本数m可以和分类任务的批处理的输入数据中的样本数n相等,也可以不等。

将所述第二滑动平均及所述第二滑动方差发送给所述数据服务器,以使所述数据服务器根据所述第二滑动平均和所述第二滑动方差对全局滑动平均和全局滑动方差进行更新,得到更新的全局滑动平均和更新的全局滑动方差。

接收所述数据服务器发送的更新的全局滑动平均和更新的全局滑动方差。

根据所述更新的全局滑动平均、所述更新的全局滑动方差、所述第二平均及所述第二方差计算得到第二输出数据。

在一个实例中,计算上述的第二输出数据可以表示为:

其中,r、d表示用于归一化的参数;stop_gradient()表示反向传播算梯度时不对括号里的内容进行计算;clip表示表示把圆括号()里的数,截到[]里的范围内;yib表示语义分割任务的某一层的第i个神经元的第二输出数据;γ、β表示某一神经元需要学习的参数。

进一步地,根据分类任务对应的第一滑动平均和语义分割对应的第二滑动平均计算全局滑动平均可以使用以下方式:

μ=(μa+μb)/2;

σ=(σa+σb)/2;

其中,μ、σ表示更新的全局滑动平均和更新的全局滑动方差。

步骤s302,将所述训练参数的更新量发送给所述数据服务器。

在一种实施方式中,上述的数据服务器可以是与执行其中一个任务的训练服务器共用一个服务器,则此时步骤s302可以被实施为:将上述的训练参数的更新量传输给对应数据服务器对应的功能模块。

如图6所示,第一训练服务器将训练得到的第一更新量发送给数据服务器;第二训练服务器将训练得到的第二更新量发送给数据服务器。

步骤s303,接收所述数据服务器发送的更新的训练参数。

上述的更新的训练参数为所述数据服务器根据不同训练服务器进行不同任务训练时得到的对应的训练参数的更新量计算得到的参数。

本实施例中的数据训练方法在数据训练过程中涉及多种训练参数的更新,第一训练服务器和第二训练服务器计算更新量时,针对同一种训练参数进行计算。数据服务器则针对同一种训练参数的第一更新量和第二更新量进行计算得到对应的更新的训练参数。

进一步地,可重复上述的步骤s301至s303,直到达到设定条件,输出最后得到的训练模型。上述的设定条件可以是训练次数达到了设定次数;上述的设定条件还可以是训练的输出数据的准确率达到设定值。

进一步地,通过上述的步骤s301至s303训练得到的分割模型可以用于地质检测,该分割模型可以将检测到的土地图像进行类型(例如,城市、农业、水等区域)划分。上述的分割模型还可以用于自动驾驶过程中的周边环境的识别分类。上述的分割模型还可以用于面部的分割。具体地,上述的分割模型用于不同应用场景时,可以选择不同的训练数据对模型进行训练。

本申请实施例的数据训练方法、装置及电子设备,通过训练服务器对根据训练数据对其所属任务进行训练,从而得到训练参数的更新量,再将更新量发送给数据服务器,训练服务器可以再次接收到数据服务器根据不同训练服务器进行不同任务训练时得到的对应的训练参数的更新量计算得到的更新的训练参数,从而不需要训练服务器提前进行预训练,训练服务器可以通过数据服务器共享训练参数,从而也能够捕捉所需的特征信息,使训练出来的模型能够更好地实现识别。进一步地,本实施例中的数据训练方法用于对语义分割模型进行训练可以实现不同训练服务器分别分类任务与语义分割任务的同步训练,并且实现不同训练服务器间共享相同的batchrenormalization单元,从而可以使语义分割训练任务的训练更快的同时,还可以实现让训练模型在训练过程中更能捕捉语意信息。

实施例三

请参阅图7,是本申请实施例提供的数据训练方法的流程图。本申请实施例中的方法可由图1所示的第一训练服务器120和第二训练服务器130执行。本申请实施例与上述的实施例二类似,其不同之处在于,本申请实施例中基于训练服务器一侧所执行的动作进行撰写的方法,本申请实施例是基于数据服务器一侧撰写的方法实施例。下面将对图7所示的具体流程进行详细阐述。

步骤s401,接收第一训练服务器和第二训练服务器发送的训练参数的第一更新量和第二更新量。

上述的第一训练服务器和所述第二训练服务器用于根据训练参数进行不同的所属任务的训练。

可选地,上述的第一训练服务器用于根据训练参数对分类任务进行训练,上述的步骤s401可以包括:接收所述第一训练服务器发送的所述训练参数的第一更新量,上述的第一更新量为所述第一训练服务器根据训练参数进行分类训练得到的更新量。

可选地,上述的第二训练服务器用于根据训练参数对语义分割任务进行训练。上述的步骤s401可以包括:接收所述第二训练服务器发送的所述训练参数的第二更新量,所述第二更新量为第二训练服务器根据训练参数进行语义分割训练得到的更新量。

关于上述的第一更新量和第二更新量的计算方式可以使用上述的实施例二中的计算方式,本实施例不再赘述。

步骤s402,将接收到的所述训练参数对应的所述第一更新量和所述第二更新量进行计算,得到总更新量。

步骤s403,使用所述训练参数的总更新量更新当前存储的训练参数,将更新后的训练参数分发给所述第一训练服务器和/或第二训练服务器。

在第一训练服务器和第二训练服务器进行训练过程中,在得到更新量之前还可以对计算更新量过程中的中间参数进行协助处理。数据训练方法还包括以下步骤g-j。

g、接收所述第一训练服务器和所述第二训练服务器发送的局部滑动平均和局部滑动方差;

h、根据所有的所述局部滑动平均进行计算,得到更新的全局滑动平均;

在一种实施方式中,可以将所有的所述局部滑动平均进行加权求和的方式得到全局滑动平均。每个局部滑动平均的权重可以相等,也可以不等。具体可以根据实际需要选择每个局部滑动平均的权重。

i、根据所有的所述局部滑动方差计算,得到更新的全局滑动方差;

在一种实施方式中,可以将所有的所述局部滑动方差进行加权求和的方式得到全局滑动方差。每个局部滑动方差的权重可以相等,也可以不等。具体可以根据实际需要选择每个局部滑动方差的权重。

下面以每个局部滑动平均的权重可以相等、每个局部滑动方差的权重可以相等为例,通过一个计算公式表示:

μ=(μa+μb)/2;

σ=(σa+σb)/2;

其中,μ、σ表示更新的全局滑动平均和全局滑动方差。

j、将所述更新的全局滑动平均和所述更新的全局滑动方差发送给所述第一训练服务器和所述第二训练服务器,以使所述第一训练服务器和所述第二训练服务器根据所述更新的全局滑动平均和所述更新的全局滑动方差计算所述第一更新量或第二更新量。

关于本实施例中的方法的其它细节也可以参考上述的实施例二以及基于图1的相关介绍,在此不再赘述。

实施例四

请参阅图8,是本申请实施例提供的数据训练方法的流程图。本申请实施例中的各个步骤可以由图1所示的计算机集群执行。下面将对图8所示的具体流程进行详细阐述。

步骤s501,第一训练服务器从数据服务器中获取共享的训练参数进行所属任务训练,得到所述训练参数的第一更新量。

不同用途的训练参数使用不同的名称进行命名,数据服务器根据接收到的第一训练服务器的数据请求为其分发对应的训练参数。

可选地,第一训练服务器可以用于对语义分割模型中的分类任务进行训练。

步骤s502,第二训练服务器从数据服务器中获取共享的训练参数进行所属任务训练,得到所述训练参数的第二更新量。

可选地,第一训练服务器可以用于对语义分割模型中的语义分割任务进行训练。

本申请实施例并不对步骤s501和步骤s502的执行顺序进行限制,步骤s501可以在步骤s502之前执行;也可以在步骤s502之后执行;也可以步骤s501和步骤s502同步执行;还可以是在当前训练的模型的不同层的训练中穿插执行等。其中,不同的任务分布在第一训练服务器与第二训练服务器上进行训练,不需要在等分类任务执行完成之后,再进行语义分割任务,从而可以使使得整个训练流程更快。

步骤s503,所述第一训练服务器将所述训练参数的所述第一更新量发送给所述数据服务器。

步骤s504,所述第二训练服务器将所述训练参数的所述第二更新量发送给所述数据服务器。

本申请实施例并不对步骤s503和步骤s504的执行顺序进行限制,步骤s503可以在步骤s504之前执行;也可以在步骤s504之后执行;也可以步骤s503和步骤s504同步执行。

步骤s505,所述数据服务器将收到的对应训练参数的所述第一更新量和所述第二更新量进行计算,得到总更新量。

步骤s506,所述数据服务器使用所述总更新量更新所述数据服务器中当前存储的训练参数,将更新后的训练参,分发给所述第一训练服务器和/或第二训练服务器。

在步骤s501之前,主控服务器运行其存储的主程序;第一训练服务器和第二训练服务器在主控服务器运行到设定流程后,启动执行其存储的训练程序进行数据训练。

关于本实施例的其它细节还可以进一步地参考上述的实施例二、实施例三中的描述,在此不再赘述。

现有的语义分割训练,在语义分割的训练过程中,backbone骨干网络的参数很可能会偏离先前的参数很远,不能发挥预训练的最大效果。与现有的语义分割训练相比,本申请实施例通过batchrenormalization的工作机制,在训练过程中同步进行imagenet可视化数据库的finetune微调训练,不需要在imagenet可视化数据库进行预训练。进一步地,不同训练服务器进行分类任务与语义分割任务的同步训练,并且实现不同训练服务器间共享相同的batchrenormalization单元,可以使语义分割训练任务的训练能够更快同时,还可以实现让训练模型在训练过程中更能捕捉语意信息。

实施例五

请参阅图9,是本申请实施例提供的数据训练装置的功能模块示意图。本实施例中的数据训练装置中的各个模块用于执行上述实施例二中的各个步骤。所述数据训练装置包括:训练模块601、发送模块602以及第一接收模块603,其中,

训练模块601,用于从数据服务器中获取共享的训练参数进行所属任务的训练,得到所述训练参数的更新量;

发送模块602,用于将所述训练参数的更新量发送给数据服务器;

第一接收模块603,用于接收所述数据服务器发送的更新的训练参数,所述更新的训练参数为所述数据服务器根据不同训练服务器进行不同任务训练时得到的对应的训练参数的更新量计算得到的参数。

在一些实施例中,上述的训练模块601还用于:

获得所属任务所需的批处理的输入数据;

根据所述输入数据前向传播经过批重归一化得到输出数据;

根据所述输出数据后向传播训练得到所述训练参数的梯度;

根据所述训练参数的梯度计算得到所述训练参数的更新量。

上述的训练模块601还用于:

根据输入数据计算局部平均和局部方差;

根据所述局部平均及当前的局部滑动平均进行计算,得到更新的局部滑动平均;

根据所述局部方差及当前的局部方差进行计算,得到更新的局部滑动方差;

将所述局部滑动平均及所述局部滑动方差发送给所述数据服务器,以使所述数据服务器根据所述局部滑动平均和所述局部滑动方差对全局滑动平均和全局滑动方差进行更新,得到更新的全局滑动平均和更新的全局滑动方差;

接收所述数据服务器发送的所述更新的全局滑动平均和所述更新的全局滑动方差;

将所述更新的全局滑动平均、所述更新的全局滑动方差、所述局部平均及所述局部方差计算得到输出数据。

上述的训练模块601还用于:

从数据服务器中获取共享的训练参数进行分类训练,得到所述训练参数的第一更新量。

上述的训练模块601还用于:

从数据服务器中获取共享的训练参数进行语义分割训练,得到所述训练参数的第二更新量。

关于本实施例的其它细节可以进一步地参考上述方法实施例中的描述,在此不再赘述。

实施例六

请参阅图10,是本申请实施例提供的数据训练装置的功能模块示意图。本实施例中的数据训练装置中的各个模块用于执行上述实施例三中的各个步骤。所述数据训练装置包括:第二接收模块701、计算模块702以及更新模块703,其中,

第二接收模块701,用于接收第一训练服务器和第二训练服务器发送的训练参数的第一更新量和第二更新量,所述第一训练服务器和所述第二训练服务器用于根据训练参数进行不同的所属任务的训练;

计算模块702,用于将接收到的所述训练参数对应的所述第一更新量和所述第二更新量进行计算,得到总更新量;

更新模块703,用于使用所述训练参数的总更新量更新当前存储的训练参数,将更新后的训练参数分发给所述第一训练服务器和/或第二训练服务器。

在一些实施例中,数据训练装置还可以包括:中间值更新模块,用于:

接收所述第一训练服务器和所述第二训练服务器发送的局部滑动平均和局部滑动方差;

根据所有的所述局部滑动平均进行计算,得到更新的全局滑动平均;

根据所有的所述局部滑动方差计算,得到更新的全局滑动方差;

将所述更新的全局滑动平均和所述更新的全局滑动方差发送给所述第一训练服务器和所述第二训练服务器,以使所述第一训练服务器和所述第二训练服务器根据所述更新的全局滑动平均和所述更新的全局滑动方差计算所述第一更新量或第二更新量

上述的第二接收模块701,还用于:接收所述第一训练服务器发送的所述训练参数的第一更新量,所述第一更新量为所述第一训练服务器根据训练参数进行分类训练得到的更新量;

接收所述第二训练服务器发送的所述训练参数的第二更新量,所述第二更新量为第二训练服务器根据训练参数进行语义分割训练得到的更新量。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法实施例中的步骤。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1