深度学习模型的训练方法、数据处理方法、装置和设备转让专利

申请号 : CN202211526857.8

文献号 : CN115965074B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 沈亮吴志华于佃海

申请人 : 北京百度网讯科技有限公司

摘要 :

本公开提供了一种深度学习模型的训练方法,涉及人工智能技术领域,尤其涉及分布式计算技术领域和深度学习技术领域。具体实现方案为:在利用目标处理层的第一在后处理层处理目标输出结果的过程中,将目标输出结果写入目标存储单元;在确定目标处理层的第二在后处理层的梯度信息过程中,从目标存储单元读取目标输出结果;利用目标处理层的第一在后处理层对目标输出结果进行重处理,得到目标输出结果的第一在后输出结果;根据目标输出结果的第一在后输出结果,确定目标处理层的第一在后处理层的第一目标梯度信息;以及根据第一目标梯度信息,训练深度学习模型。本公开还提供了一种数据处理方法、装置、设备和介质。

权利要求 :

1.一种深度学习模型的训练方法,所述深度学习模型部署于第一计算单元,所述深度学习模型包括多个处理层,包括:在前向计算过程中,并行地执行以下操作:利用目标处理层的第一在后处理层处理目标输出结果以及将所述目标输出结果写入目标存储单元,其中,所述目标处理层为多个所述处理层中一个处理层,所述目标输出结果为所述目标处理层的输出结果,所述目标处理层的第一在后处理层为所述目标处理层之后的处理层,所述目标存储单元为与第二计算单元关联的存储单元;

在反向计算过程中,并行地执行以下操作:确定所述目标处理层的第二在后处理层的梯度信息以及从所述目标存储单元读取所述目标输出结果;

利用所述目标处理层的第一在后处理层对所述目标输出结果进行重计算处理,得到所述目标输出结果的第一在后输出结果;

根据所述目标输出结果的第一在后输出结果,确定所述目标处理层的第一在后处理层的第一目标梯度信息;以及根据所述第一目标梯度信息,调整所述目标处理层的第一在后处理层的参数,以训练所述深度学习模型。

2.根据权利要求1所述的方法,其中,所述目标处理层的第二在后处理层为所述目标处理层的第一在后处理层之后的处理层。

3.根据权利要求1所述的方法,其中,所述第一计算单元包括图形处理单元和神经网络处理单元中的至少一种,所述第二计算单元包括中央处理单元,所述目标存储单元包括与所述第二计算单元关联的内存储器和外存储器中的至少一个。

4.根据权利要求1所述的方法,还包括:

响应于获得了多个所述处理层各自的输出结果,从与所述第一计算单元关联的存储单元中删除至少一个所述处理层的输出结果。

5.根据权利要求1所述的方法,其中,所述根据所述目标输出结果的第一在后输出结果,确定所述目标处理层的第一在后处理层的第一目标梯度信息包括:根据所述目标输出结果的第一在后输出结果,确定所述目标处理层的第三在后处理层的第二目标梯度信息,其中,所述目标处理层的第三在后处理层为所述目标处理层的第一在后处理层之后的处理层,所述目标处理层的第三在后处理层为所述目标处理层的第二在后处理层之前的处理层;以及根据所述第二目标梯度信息,确定所述第一目标梯度信息。

6.根据权利要求1所述的方法,还包括:

根据所述深度学习模型的结构信息,在多个所述处理层中确定至少一个所述目标处理层。

7.根据权利要求6所述的方法,其中,所述根据所述深度学习模型的结构信息,在多个所述处理层中确定至少一个所述目标处理层包括:获取与所述深度学习模型的结构信息相关的输入信息,其中,所述输入信息来自目标用户;

根据所述输入信息,在多个所述处理层中确定至少一个所述目标处理层。

8.一种数据处理方法,包括:

将分布式设备采集的目标数据输入深度学习模型,得到数据处理结果,其中,所述分布式设备包括第一计算单元和第二计算单元,所述深度学习模型部署于所述分布式设备的所述第一计算单元,其中,所述深度学习模型是利用权利要求1至7任一项所述的方法训练的。

9.一种深度学习模型的训练装置,所述深度学习模型部署于第一计算单元,所述深度学习模型包括多个处理层,包括:写入模块,用于在前向计算过程中,并行地执行以下操作:利用目标处理层的第一在后处理层处理目标输出结果以及将所述目标输出结果写入目标存储单元,其中,所述目标处理层为多个所述处理层中一个处理层,所述目标输出结果为所述目标处理层的输出结果,所述目标处理层的第一在后处理层为所述目标处理层之后的处理层,所述目标存储单元为与第二计算单元关联的存储单元;

读取模块,用于在反向计算过程中,并行地执行以下操作:确定所述目标处理层的第二在后处理层的梯度信息以及从所述目标存储单元读取所述目标输出结果;

重处理模块,用于利用所述目标处理层的第一在后处理层对所述目标输出结果进行重计算处理,得到所述目标输出结果的第一在后输出结果;

第一确定模块,用于根据所述目标输出结果的第一在后输出结果,确定所述目标处理层的第一在后处理层的第一目标梯度信息;以及训练模块,用于根据所述第一目标梯度信息,调整所述目标处理层的第一在后处理层的参数,以训练所述深度学习模型。

10.根据权利要求9所述的装置,其中,所述目标处理层的第二在后处理层为所述目标处理层的第一在后处理层之后的处理层。

11.根据权利要求9所述的装置,其中,所述第一计算单元包括图形处理单元和神经网络处理单元中的至少一种,所述第二计算单元包括中央处理单元,所述目标存储单元包括与所述第二计算单元关联的内存储器和外存储器中的至少一个。

12.根据权利要求9所述的装置,还包括:

删除模块,用于响应于获得了多个所述处理层各自的输出结果,从与所述第一计算单元关联的存储单元中删除至少一个所述处理层的输出结果。

13.根据权利要求9所述的装置,其中,所述第一确定模块包括:第一确定子模块,用于根据所述目标输出结果的第一在后输出结果,确定所述目标处理层的第三在后处理层的第二目标梯度信息,其中,所述目标处理层的第三在后处理层为所述目标处理层的第一在后处理层之后的处理层,所述目标处理层的第三在后处理层为所述目标处理层的第二在后处理层之前的处理层;以及第二确定子模块,用于根据所述第二目标梯度信息,确定所述第一目标梯度信息。

14.根据权利要求9所述的装置,还包括:

第二确定模块,用于根据所述深度学习模型的结构信息,在多个所述处理层中确定至少一个所述目标处理层。

15.根据权利要求14所述的装置,其中,所述第二确定模块包括:获取子模块,用于获取与所述深度学习模型的结构信息相关的输入信息,其中,所述输入信息来自目标用户;

第三确定子模块,用于根据所述输入信息,在多个所述处理层中确定至少一个所述目标处理层。

16.一种数据处理装置,包括:

获得模块,用于将分布式设备采集的目标数据输入深度学习模型,得到数据处理结果,其中,所述分布式设备包括第一计算单元和第二计算单元,所述深度学习模型部署于所述分布式设备的所述第一计算单元,其中,所述深度学习模型是利用权利要求9至15任一项所述的装置训练的。

17.一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至8中任一项所述的方法。

18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至8中任一项所述的方法。

说明书 :

深度学习模型的训练方法、数据处理方法、装置和设备

技术领域

[0001] 本公开涉及人工智能技术领域,尤其涉及分布式计算技术领域和深度学习技术领域。更具体地,本公开提供了一种深度学习模型的训练方法、数据处理方法、装置、电子设备和存储介质。

背景技术

[0002] 随着人工智能技术的发展,深度学习框架的应用场景不断增加。基于深度学习框架,可以高效地将深度学习模型应用于相关场景中,降低了深度学习模型的使用门槛。

发明内容

[0003] 本公开提供了一种深度学习框架的多任务并行处理方法、装置、设备以及存储介质。
[0004] 根据本公开的一方面,提供了一种深度学习模型的训练方法,深度学习模型部署于第一计算单元,深度学习模型包括多个处理层。该方法包括:在利用目标处理层的第一在后处理层处理目标输出结果的过程中,将目标输出结果写入目标存储单元,其中,目标处理层为多个处理层中一个处理层,目标输出结果为目标处理层的输出结果,目标处理层的第一在后处理层为目标处理层之后的处理层,目标存储单元为与第二计算单元关联的存储单元;在确定目标处理层的第二在后处理层的梯度信息过程中,从目标存储单元读取目标输出结果;利用目标处理层的第一在后处理层对目标输出结果进行重处理,得到目标输出结果的第一在后输出结果;根据目标输出结果的第一在后输出结果,确定目标处理层的第一在后处理层的第一目标梯度信息;以及根据第一目标梯度信息,训练深度学习模型。
[0005] 根据本公开的另一方面,提供了一种数据处理方法,该方法包括:将分布式设备采集的目标数据输入深度学习模型,得到数据处理结果,其中,分布式设备包括第一计算单元和第二计算单元,深度学习模型部署于分布式设备的第一计算单元,其中,深度学习模型是利用本公开提供的方法训练的。
[0006] 根据本公开的另一方面,提供了一种深度学习模型的训练装置,深度学习模型部署于第一计算单元,深度学习模型包括多个处理层,该装置包括:写入模块,用于在利用目标处理层的第一在后处理层处理目标输出结果的过程中,将目标输出结果写入目标存储单元,其中,目标处理层为多个处理层中一个处理层,目标输出结果为目标处理层的输出结果,目标处理层的第一在后处理层为目标处理层之后的处理层,目标存储单元为与第二计算单元关联的存储单元;读取模块,用于在确定目标处理层的第二在后处理层的梯度信息过程中,从目标存储单元读取目标输出结果;重处理模块,用于利用目标处理层的第一在后处理层对目标输出结果进行重处理,得到目标输出结果的第一在后输出结果;第一确定模块,用于根据目标输出结果的第一在后输出结果,确定目标处理层的第一在后处理层的第一目标梯度信息;以及训练模块,用于根据第一目标梯度信息,训练深度学习模型。
[0007] 根据本公开的另一方面,提供了一种数据处理装置,该装置包括:获得模块,用于将分布式设备采集的目标数据输入深度学习模型,得到数据处理结果,其中,分布式设备包括第一计算单元和第二计算单元,深度学习模型部署于分布式设备的第一计算单元,其中,深度学习模型是利用本公开提供的装置训练的。
[0008] 根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行根据本公开提供的方法。
[0009] 根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本公开提供的方法。
[0010] 根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据本公开提供的方法。
[0011] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0012] 附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0013] 图1是根据本公开的一个实施例的可以应用深度学习模型的训练方法和/或数据处理方法的系统架构的示意图;
[0014] 图2是根据本公开的一个实施例的深度学习模型的训练方法的流程图;
[0015] 图3是根据本公开的一个实施例的深度学习模型的训练方法的原理图;
[0016] 图4是根据本公开的一个实施例的数据处理方法的流程图;
[0017] 图5是根据本公开的一个实施例的深度学习模型的训练装置的框图;
[0018] 图6是根据本公开的一个实施例的数据处理装置的框图;以及
[0019] 图7是根据本公开的一个实施例的可以应用深度学习模型的训练方法和/或数据处理方法的电子设备的框图。

具体实施方式

[0020] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0021] 在前向计算过程中,多个前向算子可以计算出多个中间结果。在训练数据较大且前向算子的数量较多的情况下,中间结果的数量也较多,占用的显存也就越多。深度学习框架可以使用张量来存储这些中间结果。当模型具有大量的处理层时,中间结果的数量可以达到数千个甚至数万个。大量的中间结果可以占据大量的显存空间。基于显存回收机制,可以删除与后续前向计算无关的中间结果。但在大量的中间结果中,部分中间结果可以是反向算子的输入,这部分中间结果需要存储在显存中,直至相应的反向算子完成相关计算。
[0022] 基于此,在深度学习领域,为了实现大规模的模型训练,可以进行前向重计算反向(Forward Recompute Backward,FRB)处理。在一些实施例中,可以将深度学习模型切分成多个部分(segment)。对于每个部分,在前向计算过程中,除了少部分需要存储在显存中的中间结果之外,其他的中间结果都会被删除。例如,在反向计算过程中,可以利用相关处理层重新进行前向计算。与重新进行前向计算相关的输入数据可以被称为检测点(checkpoint)。在反向计算过程中,可以根据该检测点,重新进行一次前向计算,得到相应的中间结果,以便根据该中间结果确定相应的梯度信息。
[0023] 在一些实施例中,在模型体积较大的情况下,检测点的数量可能较多,保存大量的检测点可以消耗大量的显存,进而影响前向计算或反向计算的效率。为了减少显存的消耗,可以将检测点存储至与中央计算单元(Central Processing Unit,CPU)关联的内存储器。将检测点写入显存之外的存储单元的方式,可被称为放置(Offload)。在反向计算过程中,可以从中央处理单元关联的内存储器中读取检测点。从显存之外的存储单元读取检测点的方式,可以被称为加载(Onload)。
[0024] 图1是根据本公开的一个实施例的可以应用深度学习模型的训练方法和/或数据处理方法的示例性系统架构。
[0025] 需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
[0026] 如图1所示,根据该实施例的系统架构100可以包括终端设备101,网络102和服务器集群103。网络102用以在终端设备101和服务器集群103之间提供通信链路的介质。网络102还可以用以在服务器集群103内部提供通信链路的介质。网络102可以包括各种连接类型,例如有线和/或无线通信链路等等。
[0027] 用户可以使用终端设备101通过网络102与服务器集群103交互,以接收或发送消息等。例如,终端设备101可以通过网络102向服务器集群103发送用于训练深度学习模型的请求。
[0028] 终端设备101上可以安装有各种通讯客户端应用,例如知识阅读类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。
[0029] 终端设备101可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0030] 服务器集群103可以是提供各种服务的服务器,例如对用户利用终端设备101发送的请求提供支持的后台管理服务器(仅为示例)。
[0031] 服务器集群103可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0032] 模型训练方法和/或数据处理方法可以应用于服务器集群103。服务器集群103包括多个服务器节点1031、1032、1033、1034,每个服务器节点包括多个硬件单元。
[0033] 可以利用服务器集群103中的任一服务器节点中一个硬件单元来训练深度学习模型。也可以利用服务器集群103中的多个服务器节点中的多个硬件单元,按照分布式策略训练深度学习模型,以提高深度学习模型的训练效率。在训练完成之后,可以将深度学习模型部署至与目标场景相关的设备,使得深度学习模型可以处理来自目标场景的数据。
[0034] 应该理解,图1中的终端设备、网络和服务器集群中的服务器节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器节点。
[0035] 应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。
[0036] 图2是根据本公开的一个实施例的深度学习模型的训练方法的流程图。
[0037] 在本公开实施例中,深度学习模型可以包括多个处理层。例如,处理层可以包括全连接(Fully Connected,FC)层和激活层中的至少一个。又例如,激活层的激活函数可以为Sigmoid函数。又例如,多个处理层可以包括全连接层fc0、全连接层fc1、全连接层fc2、全连接层fc3、全连接层fc4、全连接层fc5和激活层sigmoid。
[0038] 在本公开实施例中,第一计算单元可以为图形处理单元(Graphics Processing Unit,GPU)。
[0039] 如图2所示,该方法200可以包括操作S210至操作S250。
[0040] 在操作S210,在利用目标处理层的第一在后处理层处理目标输出结果的过程中,将目标输出结果写入目标存储单元。
[0041] 在本公开实施例中,目标处理层为多个处理层中一个处理层。例如,目标处理层可以是全连接层fc3。
[0042] 在本公开实施例中,目标输出结果为目标处理层的输出结果。例如,目标输出结果可以为全连接层fc3的输出结果ckpt_1。
[0043] 在本公开实施例中,目标处理层的第一在后处理层为目标处理层之后的处理层。例如,全连接层fc3的第一在后处理层可以为全连接层fc4。
[0044] 在本公开实施例中,在前向计算过程中,可以利用目标处理层的第一在后处理层处理目标输出结果。例如,以下两个操作可以是并行执行的:将目标输出结果ckpt_1输入全连接层fc4以及将目标输出结果ckpt_1写入目标存储单元。可以理解,将目标输出结果ckpt_1写入目标存储单元的操作,也可以被称为放置(Offload)操作。
[0045] 在本公开实施例中,目标存储单元为与第二计算单元关联的存储单元。例如,第二计算单元可以为中央处理单元。又例如,目标存储单元可以与中央处理单元关联的内存储器。可以理解,内存储器又可以称为主存储器。它是中央处理单元能直接寻址的存储空间,由半导体器件制成。内存储器的特点是存取速率快。
[0046] 在操作S220,在确定目标处理层的第二在后处理层的梯度信息过程中,从目标存储单元读取目标输出结果。
[0047] 例如,目标处理层的第二在后处理层可以为激活层sigmoid。
[0048] 在本公开实施例中,在反向计算过程中,可以确定目标处理层的第二在后处理层的梯度信息。例如,以下两个操作可以是并行执行的:确定激活层sigmoid的梯度信息以及利用图形处理单元从目标存储单元读取目标输出结果ckpt_1。可以理解,从目标存储单元读取目标输出结果ckpt_1的操作,也可以被称为加载(Onload)操作。
[0049] 例如,激活层sigmoid可以为最后一个处理层。根据激活层sigmoid的输出结果和样本数据的标签,可以确定一个损失信息,根据该损失信息可以确定激活层中参数的梯度以及变量的梯度。
[0050] 在操作S230,利用目标处理层的第一在后处理层对目标输出结果进行重处理,得到目标输出结果的第一在后输出结果。
[0051] 例如,可以将目标输出结果ckpt_1再次输入全连接层fc4,得到全连接层fc4的输出结果,作为第一在后输出结果。
[0052] 在操作S240,根据目标输出结果的第一在后输出结果,确定目标处理层的第一在后处理层的第一目标梯度信息。
[0053] 例如,根据全连接层fc4的输出结果,可以确定全连接层fc4中变量的梯度。由此,可以得到全连接层fc4中参数和变量各自的梯度,作为第一目标梯度信息。
[0054] 在操作S250,根据第一目标梯度信息,训练深度学习模型。
[0055] 例如,可以根据第一目标梯度信息,调整全连接层fc4的参数,以训练深度学习模型。
[0056] 通过本公开实施例,在前向计算过程中,将前向计算与输出结果写入目标存储单元并行执行;在反向计算过程中,将读取目标输出结果与反向计算并行执行,实现了模型的处理与读写操作的并行,可以充分利用计算单元的计算能力以及计算单元与存储单元之间的数据传输带宽,提高模型训练效率。此外,将读取输出结果与反向计算并行执行,可以及时地进行重处理,有助于进一步提高模型训练效率。
[0057] 通过本公开实施例,实现了模型的处理与读写操作的并行,可以充分利用深度学习模型与第一计算单元或第二计算单元之间的关联,可以提高第一计算单元的运算效率,减少了与第一计算单元关联的存储单元的存储压力,提高了用于训练深度学习模型的设备的内部性能。
[0058] 可以理解,上文对本公开的方法进行说明,下面将结合相关实施例对本公开的深度学习模型进行进一步说明。
[0059] 在一些实施例中,目标处理层的第二在后处理层可以为目标处理层的第一在后处理层之后的处理层。例如,目标处理层可以为上述的全连接层fc3,目标处理层的第一在后处理层可以为全连接层fc4,目标处理层的第二在后处理层可以为激活层sigmoid。又例如,目标处理层也可以为全连接层fc1,该目标处理层的第一在后处理层可以为全连接层fc2,该目标处理层的第二在后处理层可以为全连接层fc4。
[0060] 可以理解,上文以深度学习模型部署于图形处理单元为示例,对本公开的方法进行了说明。但本公开不限于此,下面将进行详细说明。
[0061] 在一些实施例中,第一计算单元包括图形处理单元和神经网络处理单元中的至少一种,第二计算单元包括中央处理单元。例如,第一计算单元也可以是神经网络处理单元(Neural‑network Processing Units,NPU)。
[0062] 在一些实施例中,目标存储单元包括与第二计算单元关联的内存储器和外存储器中的至少一个。例如,目标存储单元还可以为与中央处理单元关联的外存储器。
[0063] 例如,外存储器可以包括硬盘、磁储存设备等各种存储器。
[0064] 又例如,目标存储单元可以包括与中央处理单元关联的内存储器和外存储器。在一个示例中,在内存储器的存储空间被耗尽之后,可以将目标输出结果写入外存储器。通过本公开实施例,将目标输出结果保存至内存储器或外存储器,可以充分利用设备的存储资源,高效地保存全部的目标输出结果,有助于提高模型训练的精度和效率。
[0065] 可以理解,上文对本公开的计算单元和深度学习模型进行了说明,下面将结合相关实施例对本公开的模型训练方法的原理进行说明。
[0066] 图3是根据本公开的一个实施例的深度学习模型的训练方法的原理图。
[0067] 在一些实施例中,深度学习模型可以包括多个处理层。在本公开实施例中,多个处理层可以为N个。目标处理层可以为I个。N为不小于1的整数,I为不小于1且不大于N的整数。
[0068] 例如,以N=7为示例,如图3所示,深度学习模型可以包括全连接层310、全连接层320、全连接层330、全连接层340、全连接层350、全连接层360和激活层370。可以理解,全连接层310、全连接层320、全连接层330、全连接层340、全连接层350、全连接层360和激活层
370可以分别为上述的全连接层fc0、全连接层fc1、全连接层fc2、全连接层fc3、全连接层fc4、全连接层fc5和激活层sigmoid。
[0069] 在一些实施例中,在上述的操作S210之前,上述的方法200还可以包括:根据深度学习模型的结构信息,在多个处理层中确定至少一个目标处理层。
[0070] 在本公开实施例中,根据深度学习模型的结构信息,在多个处理层中确定至少一个目标处理层可以包括:获取与深度学习模型的结构信息相关的输入信息。根据输入信息,在多个处理层中确定至少一个目标处理层。例如,输入信息来自目标用户。又例如,输入信息可以指示将多个处理层中的至少一个处理层作为目标处理层。又例如,可以将如图3所示的全连接层320和全连接层340分别作为一个目标处理层。可以理解,本实施例中,I=2。全连接层320可以作为第1个目标处理层,全连接层340可以作为第2个目标处理层。
[0071] 接下来,可以进行前向计算。例如,将样本数据301输入全连接层310,得到全连接层310的输出结果。将全连接层310的输出结果输入全连接层320,可以得到全连接层320输出结果。如上述,全连接层320可以作为第1个目标处理层。基于此,全连接层320的输出结果可以作为第1个目标输出结果。
[0072] 在一些实施例中,在上述的操作S210的一些实施方式中,可以并行执行以下操作:将第1个目标输出结果输入全连接层330以及将第1个目标输出结果写入与中央处理单元C300关联的存储单元。可以理解,将第1个目标输出结果输入全连接层330之后,可以得到全连接层330的输出结果。可以理解,全连接层330可以作为全连接层320的第一在后处理层。
此外,全连接层330的输出结果可以作为第1个目标输出结果的第一在后输出结果。
[0073] 接下来,可以将全连接层330的输出结果输入全连接层340,得到全连接层340的输出结果。如上述,全连接层340可以作为第2个目标处理层。基于此,全连接层340的输出结果可以作为第2个目标输出结果。接下来,可以并行执行以下操作:将第2个目标输出结果输入全连接层350以及将第2个目标输出结果写入与中央处理单元C300关联的存储单元。可以理解,将第2个目标输出结果输入全连接层350之后,可以得到全连接层350的输出结果。也可以理解,全连接层350可以作为全连接层340的第一在后处理层。此外,全连接层350的输出结果可以作为第2个目标输出结果的第一在后输出结果。
[0074] 可以将全连接层350的输出结果输入全连接层360,得到全连接层360的输出结果。可以将全连接层360的输出结果输入激活层370,得到激活层370的输出结果。
[0075] 可以理解,在获得了激活层370的输出结果之后,完成了一次前向计算。
[0076] 在一些实施例中,在上述的操作S210和操作S220之间,上述方法200还可以包括:响应于获得了多个处理层各自的输出结果,从与第一计算单元关联的存储单元中删除至少一个处理层的输出结果。例如,在获得激活层370的输出结果之前,全连接层310至全连接
360各自的输出结果可以存储于图像处理单元G300的显存中。在获得激活层370的输出结果之后,例如至少可以删除全连接层320至全连接层350各自的输出结果。可以将部分输出结果从显存中删除,以释放显存空间,释放图形处理单元的运算能力,进而提高模型训练效率。
[0077] 接下来,可以进行反向计算。
[0078] 在一些实施例中,可以根据样本数据的标签和模型的输出结果,确定损失信息。根据损失信息确定多个处理层中最后一个处理层的梯度信息。例如,如图5所示,激活层370的输出结果可以作为模型的输出结果。根据激活层370的输出结果和样本数据301的标签302,可以确定损失信息。可以理解,激活层370可以作为全连接层340的第二在后处理层。
[0079] 在一些实施例中,在上述的操作S220的一些实施方式中,可以并行执行以下操作:确定激活层370的梯度信息以及利用图形处理单元G300从与中央处理单元C300关联的存储单元读取第2个目标输出结果。
[0080] 在一些实施例中,在上述的操作S230的一些实施方式中,可以利用全连接层350对第2个目标输出结果进行重处理,再次得到全连接层350的输出结果。如上述,全连接层350的输出结果可以作为第2个目标输出结果的第一在后输出结果。
[0081] 在一些实施例中,在上述的操作S240的一些实施方式中,根据目标输出结果的第一在后输出结果,确定目标处理层的第一在后处理层的第一目标梯度信息可以包括:根据目标输出结果的第一在后输出结果,确定目标处理层的第三在后处理层的第二目标梯度信息。根据第二目标梯度信息,确定第一目标梯度信息。可以根据全连接层350的输出结果和激活层370的梯度信息,确定全连接层360的第二目标梯度信息。根据全连接层360的第二目标梯度信息和第2个目标输出结果,可以得到全连接层350的第一目标梯度信息。可以理解,全连接层360可以作为第2个目标处理层的第三在后处理层。也可以理解,全连接层360为激活层370之前且为全连接层350之后的处理层。
[0082] 可以理解,全连接层350也可以作为全连接层320的第二在后处理层。由此,在上述确定全连接层350的梯度信息的过程中,也可以执行上述的操作S220。例如,可以并行执行以下操作:确定全连接层350的梯度信息以及利用图形处理单元G300从与中央处理单元C300关联的存储单元读取第1个目标输出结果。
[0083] 在一些实施例中,在上述的操作S230的一些实施方式中,可以利用全连接层330对第1个目标输出结果进行重处理,在此得到全连接层330的输出结果。如上述,全连接层330的输出结果可以作为第1个目标输出结果的第一在后输出结果。
[0084] 在一些实施例中,在上述的操作S240的一些实施方式中,可以根据全连接层330的输出结果和全连接层350的梯度信息,确定全连接层340的第二目标梯度信息。根据全连接层340的第二目标梯度信息和第1个目标输出结果,可以得到全连接层330的第一目标梯度信息。可以理解,全连接层340可以作为第1个目标处理层的第三在后处理层。也可以理解,全连接层340为全连接层350之前且为全连接层330之后的处理层。
[0085] 接下来,根据全连接层330的梯度信息,可以确定全连接层320的梯度信息。根据全连接层320的梯度信息,可以确定全连接层310的梯度信息。
[0086] 接下来,可以执行上述的操作S250。
[0087] 在一些实施例中,在上述的操作S250的一些实施方式中,根据第一目标梯度信息,训练深度学习模型。在本公开实施例中,可以根据第一目标梯度信息,调整目标处理层的第一在后处理层的参数。例如,可以根据全连接层350的梯度信息,调整全连接层350的参数。又例如,可以根据多个全连接层各自的梯度信息,调整多个全连接层各自的参数。也可以根据激活层370的梯度信息,调整激活层的参数。
[0088] 可以理解,上文结合图3对本公开的训练方法进行了说明,下面将结合相关实施例对本公开的方法进行进一步说明。
[0089] 在本公开实施例中,全连接层340可以通过以下公式执行相关操作:
[0090] x=w1*k+b1    (公式一)
[0091] x可以作为全连接层340的输出结果,w1和b1分别为全连接层340的权重和偏置。k可以为全连接层330的输出结果。可以理解,如上述,全连接层340可以作为第2个目标处理层。
[0092] 在本公开实施例中,全连接层350可以通过以下公式执行相关操作:
[0093] y=w2*x+b2    (公式二)
[0094] y可以作为全连接层350的输出结果,w2和b2分别为全连接层350的权重和偏置。可以理解,如上述,全连接层350可以作为第2个目标处理层的第一在后处理层。
[0095] 在本公开实施例中,全连接层360可以通过以下公式执行相关操作:
[0096] z=w3*y+b3    (公式三)
[0097] z可以作为全连接层360的输出结果,w3和b3分别为全连接层360的权重和偏置。可以理解,如上述,全连接层350可以作为第2个目标处理层的第三在后处理层。
[0098] 激活层370的梯度信息可以根据标签和激活层370的输出结果确定。可以理解,如上述,激活层370可以作为第2个目标处理层的第二在后处理层。激活层以全连接层360的输出结果z为输入。激活层370的梯度信息可以包括全连接层360的输出结果z的梯度grad_z。
[0099] 确定全连接层360的梯度信息可以包括:分别确定公式三中的权重w3、偏置b3和全连接层350的输出结果y的梯度。又例如,在确定全连接层350的输出结果y的梯度时,可以使用梯度grad_z和输出结果y。如上述,在前向计算结束之后,全连接层350的输出结果可以被删除。基于此,在本公开实施例中,可以进行重处理。即从与中央处理单元C300关联的存储单元中读取全连接层340的输出结果x,使得图形处理单元G300获取输出结果x。接下来,可以利用全连接层350按照上述的公式二重新处理的全连接层340的输出结果x,再次得到全连接层350的输出结果y。接下来,可以根据梯度grad_z和输出结果y,确定梯度grad_y。
[0100] 确定全连接层350的梯度信息可以包括:分别确定公式二中的权重w2、偏置b2和全连接层340的输出结果x的梯度。又例如,在确定全连接层340的输出结果x的梯度时,可以使用梯度grad_y和输出结果x。如上述,在前向计算结束之后,全连接层340的输出结果可以被删除。基于此,在本公开实施例中,可以从与中央处理单元关联的存储单元中读取全连接层340的输出结果x。接下来,可以根据梯度grad_y和输出结果x,确定梯度grad_x。
[0101] 图4是根据本公开的一个实施例的数据处理方法的流程图。
[0102] 如图4所示,方法400可以包括操作S410。
[0103] 在操作S410,将分布式设备采集的目标数据输入深度学习模型,得到数据处理结果。
[0104] 在本公开实施例中,分布式设备可以包括第一计算单元和第二计算单元。例如,第一计算单元可以包括图形处理单元和神经网络处理单元中的至少一种。又例如,第二计算单元可以包括中央处理单元。
[0105] 在本公开实施例中,深度学习模型部署于分布式设备的第一计算单元。例如,深度学习模型可以部署于图形计算单元。
[0106] 在本公开实施例中,目标数据可以来自目标场景。数据处理结果与目标场景相关。例如,目标数据可以是来自交通路口的图像。数据处理结果可以为图像的目标检测结果。
[0107] 在本公开实施例中,深度学习模型可以是利用本公开提供的方法训练的。例如,深度学习模型可以是利用方法200训练的。
[0108] 图5是根据本公开的一个实施例的深度学习框架的多任务并行处理装置的框图。
[0109] 在一些实施例中,深度学习模型部署于第一计算单元,深度学习模型包括多个处理层。
[0110] 如图5所示,该装置500可以包括写入模块510、读取模块520、重处理模块530、第一确定模块540和训练模块550。
[0111] 写入模块510,用于在利用目标处理层的第一在后处理层处理目标输出结果的过程中,将目标输出结果写入目标存储单元。例如,目标处理层为多个处理层中一个处理层,目标输出结果为目标处理层的输出结果,目标处理层的第一在后处理层为目标处理层之后的处理层,目标存储单元为与第二计算单元关联的存储单元。
[0112] 读取模块520,用于在确定目标处理层的第二在后处理层的梯度信息过程中,从目标存储单元读取目标输出结果。
[0113] 重处理模块530,用于利用目标处理层的第一在后处理层对目标输出结果进行重处理,得到目标输出结果的第一在后输出结果。
[0114] 第一确定模块540,用于根据目标输出结果的第一在后输出结果,确定目标处理层的第一在后处理层的第一目标梯度信息。
[0115] 训练模块550,用于根据第一目标梯度信息,训练深度学习模型。
[0116] 在一些实施例中,目标处理层的第二在后处理层为目标处理层的第一在后处理层之后的处理层。
[0117] 在一些实施例中,第一计算单元包括图形处理单元和神经网络处理单元中的至少一种,第二计算单元包括中央处理单元,目标存储单元包括与第二计算单元关联的内存储器和外存储器中的至少一个。
[0118] 在一些实施例中,装置500还包括:删除模块,用于响应于获得了多个处理层各自的输出结果,从与第一计算单元关联的存储单元中删除至少一个处理层的输出结果。
[0119] 在一些实施例中,第一确定模块包括:第一确定子模块,用于根据目标输出结果的第一在后输出结果,确定目标处理层的第三在后处理层的第二目标梯度信息。例如,目标处理层的第三在后处理层为目标处理层的第一在后处理层之后的处理层,目标处理层的第三在后处理层为目标处理层的第二在后处理层之前的处理层。第二确定子模块,用于根据第二目标梯度信息,确定第一目标梯度信息。
[0120] 在一些实施例中,训练模块包括:调整子模块,用于根据第一目标梯度信息,调整目标处理层的第一在后处理层的参数。
[0121] 在一些实施例中,装置500还包括:第二确定模块,用于根据深度学习模型的结构信息,在多个处理层中确定至少一个目标处理层。
[0122] 在一些实施例中,第二确定模块包括:获取子模块,用于获取与深度学习模型的结构信息相关的输入信息。例如,输入信息来自目标用户。第三确定子模块,用于根据输入信息,在多个处理层中确定至少一个目标处理层。
[0123] 图6是根据本公开的一个实施例的数据处理方法的流程图。
[0124] 如图6所示,装置600可以包括获得模块610。
[0125] 获得模块610,用于将分布式设备采集的目标数据输入深度学习模型,得到数据处理结果。
[0126] 在本公开实施例中,分布式设备包括第一计算单元和第二计算单元,深度学习模型部署于分布式设备的第一计算单元,
[0127] 在本公开实施例中,深度学习模型是利用本公开提供的装置训练的。
[0128] 本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0129] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0130] 图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0131] 如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
[0132] 设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0133] 计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如深度学习模型的训练方法和/或数据处理方法。例如,在一些实施例中,深度学习模型的训练方法和/或数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的深度学习模型的训练方法和/或数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行深度学习模型的训练方法和/或数据处理方法。
[0134] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0135] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0136] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0137] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)显示器或者LCD(液晶显示器));以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0138] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0139] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。
[0140] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0141] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。