版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(19)国家知识产权局(12)发明专利(10)授权公告号CN114004335B(65)同一申请的已公布的文献号(73)专利权人上海商汤科技开发有限公司地址201306上海市浦东新区中国(上海)自由贸易试验区临港新片区环湖西二路888号C楼(74)专利代理机构北京中知恒瑞知识产权代理有限公司11889一种数据处理的方法、装置、电子设备及存储介质本公开提供了一种数据处理的方法、装置、于目标神经网络训练代码编译得到的计算图;其中,计算图中包含形状运算关系以及数据运算关系,形状运算关系和数据运算关系分别为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则和数据计算规则;响应于针对计算图的执行指令,基于待训练的训练数据以及计算图中包含的形状运算关系和数据运算关系,执行得到针对目标神经网络训练代码的执行结果。本公开在执行阶段可以兼容各种大小的输入训练获取基于目标神经网络训练代码编译得到的计算图:其中,计算图中包含形状运算关系以及数据运算关系,形状表示信息和数据运算关系分别为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则和数据计算规则响应于针对计算图的执行指令,基于待训练的训练数据以及计算图中包含的形状运算关系和数据运算关系,执行得到针对目标神经网络训练代码的执行结果2获取基于目标神经网络训练代码编译得到的计算图;其中,所述计算图中包含形状运算关系以及数据运算关系,所述形状运算关系和数据运算关系分别为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则和数据计算规则;响应于针对所述计算图的执行指令,将待训练的训练数据的数据尺寸作为所述计算图中包含的形状运算关系的输入数据;将所述目标神经网络中各网络层对应的形状计算规则进行合并,得到针对所述目标神经网络的形状计算规则;基于所述输入数据、所述目标神经网络最后一个网络层对应的网络尺寸、以及针对所述目标神经网络的形状计算规则,确定目标神经网络输出的形状结果;基于所述目标神经网络各网络层输出的形状结果,获取分配的内存空间;利用分配好的内存空间执行所述数据运算关系,得到针对所述目标神经网络训练代码的执行结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述输入数据、所述目标神经网络各网络层对应的网络尺寸、以及所述目标神经网络中各网络层对应的形状计算规则,确定目标神经网络各网络层输出的形状结果,包括:基于所述输入数据、所述目标神经网络第一个网络层对应的网络尺寸、以及所述形状计算规则,确定所述目标神经网络第一个网络层输出的形状结果;针对除第一个网络层外的每个网络层,按照如下步骤确定该网络层输出的形状结果;基于所述目标神经网络上一个网络层输出的形状结果、所述目标神经网络上一个网络层对应的网络尺寸、以及所述形状计算规则,确定所述目标神经网络当前网络层输出的形状结果;依此循环,直至得到所述目标神经网络最后一个网络层输出的形状结果。3.根据权利要求1或2所述的方法,其特征在于,所述利用分配好的内存空间执行所述将所述待训练的训练数据的数据值、以及所述目标神经网络各网络层在编译过程中生成的网络参数值作为输入数据;利用分配好的内存空间,基于所述数据计算规则对所述输入数据执行运算过程,得到所述执行结果。4.根据权利要求1至3任一所述的方法,其特征在于,所述确定目标神经网络各网络层输出的形状结果的操作运行于第一平台,所述利用分配好的内存空间执行所述数据运算关系的操作运行于第二平台;其中,所述第一平台和所述第二平台属于异构平台。5.根据权利要求4所述的方法,其特征在于,按照如下一种方式执行所述形状运算关系和所述数据运算关系:在所述第一平台执行完成目标神经网络各网络层对应的形状运算关系的情况下,再在第二平台执行所述目标神经网络各网络层对应的数据运算关系;在所述第一平台执行完成目标神经网络当前网络层对应的形状运算关系,且在所述第二平台执行所述目标神经网络当前网络层对应的数据运算关系的情况下,在所述第一平台3并行执行目标神经网络下一个网络层对应的形状运算关系。6.根据权利要求1至5任一所述的方法,其特征在于,在所述确定目标神经网络各网络层输出的形状结果之后,所述方法还包括:验证所述目标神经网络各网络层输出的形状结果是否符合预设形状结果;在验证出符合预设形状结果的情况下,执行基于所述目标神经网络各网络层输出的形状结果,获取分配的内存空间的步骤。获取模块,用于获取基于目标神经网络训练代码编译得到的计算图;其中,所述计算图中包含形状运算关系以及数据运算关系,所述形状运算关系和数据运算关系分别为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则和数据计算规则;执行模块,用于响应于针对所述计算图的执行指令,将待训练的训练数据的数据尺寸作为所述计算图中包含的形状运算关系的输入数据;将所述目标神经网络中各网络层对应的形状计算规则进行合并,得到针对所述目标神经网络的形状计算规则;基于所述输入数据、所述目标神经网络最后一个网络层对应的网络尺寸、以及针对所述目标神经网络的形状计算规则,确定目标神经网络输出的形状结果;基于所述目标神经网络各网络层输出的形状结果,获取分配的内存空间;利用分配好的内存空间执行所述数据运算关系,得到针对所述目标神经网络训练代码的执行结果。理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至6任一所述的数据处理的方法的步骤。9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至6任一所述的数据处理的方法的步骤。4一种数据处理的方法、装置、电子设备及存储介质技术领域[0001]本公开涉及计算机技术领域,具体而言,涉及一种数据处理的方法、装置、电子设备及存储介质。背景技术[0002]为了高效地实现对神经网络模型的训练,可以利用深度学习框架编写实现神经网络模型的代码,并通过框架运行神经网络模型的代码。其中,深度学习框架通过需要先将神经网络模型编译成一个静态的计算图,通过多次执行计算图即可以实现针对多个训练数据的模型训练。[0003]在编译计算图的过程中,有关模型输入或输出对应的张量形状通常是固定的,而为了确保模型训练的顺利进行,在执行计算图的过程中必须沿用同样的形状。[0004]然而,在执行阶段输入的训练数据大小与编译阶段不匹配的情况下,将导致执行出错的问题。发明内容[0005]本公开实施例至少提供一种数据处理的方法、装置、电子设备及存储介质,兼顾不同训练数据大小的执行操作,提升训练的效率和准确率。[0006]第一方面,本公开实施例提供了一种数据处理的方法,所述方法包括:[0007]获取基于目标神经网络训练代码编译得到的计算图;其中,所述计算图中包含形状运算关系以及数据运算关系,所述形状运算关系和数据运算关系分别为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则和数据计算规则;[0008]响应于针对所述计算图的执行指令,基于待训练的训练数据以及所述计算图中包含的形状运算关系和数据运算关系,执行得到针对所述目标神经网络训练代码的执行结[0009]采用上述数据处理的方法,可以首先获取基于目标神经网络训练代码编译得到的计算图,这样,在响应于针对计算图的执行指令即可以基于计算图中包含的形状运算关系和数据运算关系,执行得到针对目标神经网络训练代码的执行结果。本公开在编译阶段利用形状运算关系和数据运算关确定了目标神经网络各网络层的形状计算规则和数据计算规则,并没有限定具体的数据大小,这使得执行阶段可以兼容各种大小的输入训练数据,所确定出的执行结果不容易出错,准确率较高,从而进一步确保网络训练的高效进行。[0010]在一种可能的实施方式中,所述基于待训练的训练数据以及所述计算图中包含的形状运算关系和数据运算关系,执行得到针对所述目标神经网络训练代码的执行结果,包[0011]基于所述待训练的训练数据以及所述计算图中包含的形状运算关系,确定目标神经网络各网络层输出的形状结果;[0012]基于所述目标神经网络各网络层输出的形状结果,获取分配的内存空间;5[0013]利用分配好的内存空间执行所述数据运算关系,得到所述执行结果。[0014]这里,首先可以进行的是有关形状运算关系的确定,在确定目标神经网络各网络层输出的形状结果的情况下,可以预先为后续的数据运算关系分配内存空间,从而提升代码执行的效率。[0015]在一种可能的实施方式中,所述基于所述待训练的训练数据以及所述计算图中包含的形状运算关系,确定目标神经网络各网络层输出的形状结果,包括:[0016]将所述待训练的训练数据的数据尺寸作为所述计算图中包含的形状运算关系的输入数据;[0017]基于所述输入数据、所述目标神经网络各网络层对应的网络尺寸、以及所述目标神经网络中各网络层对应的形状计算规则,确定目标神经网络各网络层输出的形状结果。[0018]在一种可能的实施方式中,所述基于所述输入数据、所述目标神经网络各网络层对应的网络尺寸、以及所述目标神经网络中各网络层对应的形状计算规则,确定目标神经[0019]基于所述输入数据、所述目标神经网络第一个网络层对应的网络尺寸、以及所述形状计算规则,确定所述目标神经网络第一个网络层输出的形状结果;[0020]针对除第一个网络层外的每个网络层,按照如下步骤确定该网络层输出的形状结[0021]基于所述目标神经网络上一个网络层输出的形状结果、所述目标神经网络上一个网络层对应的网络尺寸、以及所述形状计算规则,确定所述目标神经网络当前网络层输出的形状结果;[0022]依此循环,直至得到所述目标神经网络最后一个网络层输出的形状结果。[0023]这里,可以针对目标神经网络进行逐网络层的形状运算,也即,首先可以确定第一个网络层输出的形状结果,而后可以逐层计算第二个、第三个等等,直至最后一个网络层输出的形状结果。由于在针对每个网络层的过程中,执行的形状计算规则是相同的,这将使得整个计算过程更为快速。[0024]在一种可能的实施方式中,所述基于所述输入数据、所述目标神经网络各网络层对应的网络尺寸、以及所述目标神经网络中各网络层对应的形状计算规则,确定目标神经[0025]将所述目标神经网络中各网络层对应的形状计算规则进行合并,得到针对所述目标神经网络的形状计算规则;[0026]基于所述输入数据、所述目标神经网络最后一个网络层对应的网络尺寸、以及针对所述目标神经网络的形状计算规则,确定目标神经网络输出的形状结果。[0027]这里,可以进行各网络层对应的形状计算规则的合并操作,从而减少形状计算的[0028]在一种可能的实施方式中,所述利用分配好的内存空间执行所述数据运算关系,[0029]将所述待训练的训练数据的数据值、以及所述目标神经网络各网络层在编译过程中生成的网络参数值作为输入数据;[0030]利用分配好的内存空间,基于所述数据计算规则对所述输入数据执行运算过程,6得到所述执行结果。[0031]这里,在进行数据运算关系的过程中,需要待训练的训练数据的数据值以及目标神经网络各网络层在编译过程中生成的网络参数值作为输入数据,而后基于数据计算规则可以确定执行结果,所确定出的执行结果可以指导下一轮网络训练,从而确保了训练的顺[0032]在一种可能的实施方式中,所述确定目标神经网络各网络层输出的形状结果的操作运行于第一平台,所述利用分配好的内存空间执行所述数据运算关系的操作运行于第二[0033]其中,所述第一平台和所述第二平台属于异构平台。[0034]这里,由于形状运算和数据运算涉及的可以是不同的运算方式,通过异构平台的设置可以确保两个运算的高效进行。[0035]在一种可能的实施方式中,按照如下一种方式执行所述形状运算关系和所述数据运算关系:[0036]在所述第一平台执行完成目标神经网络各网络层对应的形状运算关系的情况下,再在第二平台执行所述目标神经网络各网络层对应的数据运算关系;[0037]在所述第一平台执行完成目标神经网络当前网络层对应的形状运算关系,且在所述第二平台执行所述目标神经网络当前网络层对应的数据运算关系的情况下,在所述第一平台并行执行目标神经网络下一个网络层对应的形状运算关系。[0038]在一种可能的实施方式中,在所述确定目标神经网络各网络层输出的形状结果之[0039]验证所述目标神经网络各网络层输出的形状结果是否符合预设形状结果;[0040]在验证出符合预设形状结果的情况下,执行基于所述目标神经网络各网络层输出的形状结果,获取分配的内存空间的步骤。[0041]这里,可以对各网络层输出的形状结果进行验证,以提升后续执行结果的准确性。[0043]获取模块,用于获取基于目标神经网络训算图中包含形状运算关系以及数据运算关系,所述形状运算关系和数据运算关系分别为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则和数据计算规则;[0044]执行模块,用于响应于针对所述计算图的执行指令,基于待训练的训练数据以及所述计算图中包含的形状运算关系和数据运算关系,执行得到针对所述目标神经网络训练代码的执行结果。述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面及其各种实施方式任一所述的数据处理的方法的步骤。[0046]第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面及其各种实施方式任一所述的数据处理的方法的步骤。[0047]关于上述数据处理的装置、电子设备、及计算机可读存储介质的效果描述参见上7述数据处理的方法的说明,这里不再赘述。[0048]为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图说明[0049]为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。[0050]图1示出了本公开实施例所提供的一种数据处理的方法的流程图;[0051]图2示出了本公开实施例所提供的一种数据处理的方法的应用示意图;[0052]图3示出了本公开实施例所提供的一种数据处理的装置的示意图;[0053]图4示出了本公开实施例所提供的一种电子设备的示意图。具体实施方式[0054]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。[0055]应注意到:相似的标号和字母在下面的附图中表示类个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。[0057]经研究发现,在编译计算图的过程中,有关模型输入或输出对应的张量形状通常是固定的,而为了确保模型训练的顺利进行,在执行计算图的过程中必须沿用同样的形状。[0058]然而,在执行阶段输入的训练数据大小与编译阶段不匹配的情况下,将导致执行出错的问题。[0059]这些计算图需要固定形状的一个可能原因是:需要提前知道张量的大小以对内存和其它资源进行全局分配,或者利用形状信息进行相关的优化。[0060]这样,在训练数据的大小不同的情况下,这就要求先将数据统一为一个尺寸。统一的手段有裁剪和补齐等,这些手段限制了模型算法的设计。[0061]目前,一种可能存在的改进方法是,在生成计算图时,用若干预定义的输入尺寸,生成对应的计算图,并组成一个计算图集合。这样,当实际计算时,将输入的尺寸裁剪或补8齐到最接近的预定义尺寸。这个方法的缺点在于,需要编译并存储多个计算图,并且还是要对输入数据做细微改变。[0062]基于上述研究,本公开提供了一种基于包含有形状运算关系和数据运算关系的计算图进行网络代码执行的数据处理的方法、装置、电子设备及存储介质,兼顾不同训练数据大小的执行操作,提升训练的效率和准确率。[0063]为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据处理的方法进行详细介绍,本公开实施例所提供的数据处理的方法的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为在一些可能的实现方式中,该数据处理的方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。[0064]参见图1所示,为本公开实施例提供的数据处理的方法的流程图,方法包括步骤S101~S102,其中:[0065]S101:获取基于目标神经网络训练代码编译得到的计算图;其中,计算图中包含形状运算关系以及数据运算关系,形状表示信息和数据运算关系分别为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则和数据计算规则;[0066]S102:响应于针对计算图的执行指令,基于待训练的训练数据以及计算图中包含的形状运算关系和数据运算关系,执行得到针对目标神经网络训练代码的执行结果。[0067]为了便于理解本公开实施例提供的数据处理的方法,接下来首先对该方法的应用场景进行简单说明。本公开实施例中的数据处理的方法主要可以应用于具备网络训练需求的任意场景中,例如,可以应用于有关无人驾驶场景中的车辆检测网络的训练,还可以应用于有关道路监控场景中的行人检测网络的训练等。[0068]为了高效的执行神经网络的训练,相关技术中可以先将神经网络编译成一个静态的计算图,通过多次执行计算图即可以实现针对多个训练数据的网络训练。然而,由于目前在编译计算图的过程中,有关模型输入或输出对应的张量形状通常是固定的,这样,一旦在执行阶段输入的训练数据大小与编译阶段不匹配的情况下,将导致执行出错的问题。[0069]正是为了解决上述问题,本公开实施例才提供了一种数据处理的方法、装置、电子设备及存储介质,以兼顾不同训练数据大小的执行操作,提升训练的效率和准确率。[0070]针对不同的应用场景,这里的目标神经网络也不同,所对应的目标神经网络训练代码也不同。以无人驾驶应用领域为例,这里的目标神经网络可以是用于周围车辆或行人进行检测的目标检测神经网络,对应的目标神经网络训练代码则用于指示的是有关训练目标检测神经网络的相关源代码。[0071]为了兼顾不同大小的训练数据,本公开实施例在进行计算图编译及其执行的过程[0072]其中一个是形状运算关系,形状运算关系为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则,这里的形状计算规则可以包括有形状计算的先后关系,所具体采用的计算规则等。这样,即使在后续针对计算图的执行阶段中采用的是与编译阶段不同大小的训练数据,也可以兼顾,且输入的训练数据的形状一旦确定,基于上述形状计算9规则,后续各网络层输出的形状结果也得以确定。[0073]另外一个是数据运算关系,数据运算关系为采用数据形式表征的目标神经网络中各网络层对应的数据计算规则,这里的数据计算规则可以包括有数据计算的先后关系,所具体采用的计算规则等。这样,即使在后续针对计算图的执行阶段中采用的是与编译阶段[0074]本公开实施例中有关计算图的执行可以是基于对执行指令的响应得到的,也即,基于待训练的训练数据以及计算图中包含的形状运算关系和数据运算关系,可以执行得到针对目标神经网络训练代码的执行结果。待训练的训练数据可以是在无人驾驶场景中采集的大量车辆图片,还可以是在道路监控场景中采集的大量行人图片等。[0075]其中,上述有关执行指令可以是在用户具有网络训练需求的情况下触发的,也可以是在成功编译之后,自动生成的相关指令,例如,如下通过加载指定路径并执行所包含的[0076]另外,本公开实施例在每执行一次计算图的情况下,可以对应一个执行结果,该执行结果可以是在将训练数据输入到形状运算关系和数据运算关系的情况下,基于对应的形状计算规则以及数据计算规则确定的。也即,有关网络代码的执行可以理解成是一次网络训练的过程,在每次训练的过程中,可以确定输出结果,继而可以对编译阶段确定的相关网络参数进行调整。通过对网络参数的调整,可以得到训练好的目标神经网络的网络参数值。[0077]在具体应用中,上述有关计算图编译可以是基于深度学习框架实现的。例如,利用TensorFlow这一深度学习框架将网络训练代码构建为TFGraph,TensorRT将目标神经网络训练代码编译成计算图。这里,用于表示深度学习网络的计算图可以是由形状运算和数据[0078]本公开实施例提供的数据处理的方法可以按照如下步骤执行目标神经网络训练[0079]步骤一、基于待训练的训练数据以及计算图中包含的形状运算关系,确定目标神经网络各网络层输出的形状结果;[0082]这里,可以先执行形状运算,得出形状结果,并根据形状结果分配内存空间,而后再利用分配好的内存执行数学运算。这主要是考虑到有关形状运算对应的是数据形状之间的计算,例如可以是输入的形状与网络层对应的形状之间的矩阵乘法运算,而有关数据运算对应的是数据值之间的运算,例如,可以是输入的数据值与网络层对应的网络参数值之间的矩阵乘法运算,在前者确定了内存空间的情况下,可以进行内存空间的预先分配,这使得后续的数据运算的效率更高。[0083]为了更好的执行上述形状运算关系和数据运算关系,这里需要对编译过程中抽象出来的这两个关系(即形状运算关系和数据运算关系)进行简单说明。[0084]这里,在进行两个关系的抽象表示之前,可以先引入any符号表示可变化的维度。比如(any,4)表示一个二维张量,其第一维是可变的。(any,any)表示两维都可以变化。注意,此时总的维度依旧可以是固定的。在大多数深度学习算法中,张量维[0085]基于上述可变化维度的相关表示,可以将一个网络的计算操作对应一个数据计算和一个形状计算。例如,矩阵乘法C[n,1]=A[n,m]xB[m,1],其数学定义可以暗含形状结果,这里可以将其单独抽象成个一个形状计算函数matmul_shape,该计算函数对应的是形状计算规则,同理,还可以抽象成个一个数据计算函数matmul_calc,该计算函数对应的是数据计算规则。这样一个矩阵乘法在计算图上就对应了一个matmul_shape和一个matmul_[0086]为了便于理解有关计算图,这里可以参照图2对一个具体的计算图进行示例说明。[0087]如图2所示,在输入层的张量(Tensor)形状对应为(4,3,?,?)的情况下,通过Convolutionshape(对应第一次形状运算)和Convolutioncalc(对应第一次数据运算),可以确定输出的Tensor形状对应为(4,32,?,?)。[0088]而后,作为下一层输入,通过Addshape(对应第二次形状运算)和Addcalc(对应第二次数据运算),可以确定输出的Tensor形状对应为(4,32,?,?)。[0089]其中,“?”表示可变化的维度(例如可变化的一维维度),指示在生成计算图的过程中,不对所对应维度的维度值进行具体限定,而在后续执行计算图的过程中,形状对应的维度值才得以确定,这一定程度上使得本公开实施例提供的方法可以很好的兼容各种形状的[0090]基于上述描述内容,接下来本公开实施例可以从两个方面分别阐述有关形状运算关系和数据运算关系的执行过程。[0091]第一方面:本公开实施例可以按照如下步骤执行形状运算关系:[0092]步骤一、将待训练的训练数据的数据尺寸作为计算图中包含的形状运算关系的输入数据;[0093]步骤二、基于输入数据、目标神经网络各网络层对应的网络尺寸、以及目标神经网络中各网络层对应的形状计算规则,确定目标神经网络各网络层输出的形状结果。[0094]这里,可以先将训练数据的数据尺寸作为形状运算关系的输入数据。这样,基于输入数据、目标神经网络各网络层对应的网络尺寸、以及目标神经网络中各网络层对应的形状计算规则,可以确定目标神经网络各网络层输出的形状结果。[0095]本公开实施例中,有关目标神经网络各网络层输出的形状结果可以是逐网络层确定的,也即,这里可以是先确定第一个网络层输出的形状结果,而后在此输出结果的基础之上,再依此确定第二个网络层、第三个网络层直至最后一个网络层输出的形状结果。[0096]其中,有关第一个网络层输出的形状结果,可以是将输入数据、目标神经网络第一个网络层对应的网络尺寸代入到形状计算规则中确定的。以矩阵乘法运算作为形状计算规则为例,这里可以是在确定输入数据为A[5,4],第一个网络层对应的网络尺寸为B[4,1]的[0097]另外,有关其它网络层,这里可以将目标神经网络上一个网络层输出的形状结果、目标神经网络上一个网络层对应的网络尺寸代入到形状计算规则中,确定目标神经网络当前网络层输出的形状结果。[0098]有关具体的形状计算规则与上述第一个网络层的相关描述内容类似,在此不再赘述。[0099]在确定出最后一个网络层输出的形状结果的情况下,可以基于这一形状结果确定有关待训练的目标神经网络的损失函数值,基于这一损失函数值可以对待训练的目标神经11网络进行调整,通过再次执行计算图,可以对调整后的目标神经网络再次进行训练,直至网络达到收敛,得到训练好的目标神经网络。[0100]考虑到形状计算可以是一系列标量的计算,其具有可组合性,可以将多个形状计算合并为一个,也即,本公开实施例可以将目标神经网络中各网络层对应的形状计算规则状计算等价于一个reshape_shape。如干个连续的矩阵乘法,其形状计算等价于一个matmul_shape。通过合并操作可以减少形状计算的复杂度,提高执行效率。[0101]第二方面:本公开实施例可以按照如下步骤执行数据运算关系:[0102]步骤一、将待训练的训练数据的数据值、以及目标神经网络各网络层在编译过程中生成的网络参数值作为输入数据;[0103]步骤二、利用分配好的内存空间,基于数据计算规则对输入数据执行运算过程,得到执行结果。[0104]这里,可以将训练数据的数据值、以及目标神经网络各网络层在编译过程中生成的网络参数值作为输入数据,通过数据计算规则对输入数据执行运算过程,可以得到执行[0105]相比形状运算对应的是有关数据形状的相关运算,这里的数据运算对应的则是具体数据值之间的相关运算,例如,可以是将一个5×4维度的训练数据的数据值,与一个4×1维度的网络参数值进行矩阵运算,得到一个5×1维度的执行结果。与形状运算相同的是,这里的数据运算也可以是逐网络层确定的,有关确定过程在此不再赘述。[0106]为了更好的适应于不同的数据类型之间的运算操作,这里可以将有关形状运算关系的执行操作运行于第一平台,将有关数据运算关系的执行操作运行于第二平台,两个平台属于异构平台。[0107]在具体应用中,数据计算通常是张量,可以是在特定的加速设备上执行,而形状计算通常是标量,可以在中央处理器(centralprocessingunit,CP[0108]本公开实施例中,可以是在第一平台执行完成目标神经网络各网络层对应的形状运算关系的情况下,再在第二平台执行目标神经网络各网络层对应的数据运算关系,还可以是在第一平台执行完成目标神经网络当前网络层对应的形状运算关系,且在第二平台执行目标神经网络当前网络层对应的数据运算关系的情况下,在第一平台并行执行目标神经网络下一个网络层对应的形状运算关系,也即,前一个操作的数据计算和后一个操作的形状计算可以并行执行,这将进一步提升执行效率。[0109]这里,为了确保执行结果的准确性,可以验证目标神经网络各网络层输出的形状结果是否符合预设形状结果,只有在验证出符合预设形状结果的情况下,才执行基于目标神经网络各网络层输出的形状结果,获取分配的内存空间的步骤,从而确保了后续执行结果的准确性。[0110]有关预设形状结果可以是预先确定的,一旦输入的训练数据的形状大小得以确定,所对应的各网络层输出的形状结果也得以确定。这样,在实际输出的形状结果不符合预设形状结果的情况下,即说明执行形状计算存在问题,可以停止数据运算,相比直接进行数据运算,在确保了执行结果准确性的前提下,还避免了计算资源的浪费。[0111]本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。[0112]基于同一发明构思,本公开实施例中还提供了与数据处理的方法对应的数据处理的装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据处理的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。[0113]参照图3所示,为本公开实施例提供的一种数据处理的装置的示意图,装置包括:[0114]获取模块301,用于获取基于目标神经网络训练代码编译得到的计算图;其中,计算图中包含形状运算关系以及数据运算关系,形状表示信息和数据运算关系分别为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则和数据计算规则;[0115]执行模块302,用于响应于针对计算图的执行指令,基于待训练的训练数据以及计算图中包含的形状运算关系和数据运算关系,执行得到针对目标神经网络训练代码的执行[0116]采用上述数据处理的装置,可以首先获取基于目标神经网络训练代码编译得到的计算图,这样,在响应于针对计算图的执行指令即可以基于计算图中包含的形状运算关系和数据运算关系,执行得到针对目标神经网络训练代码的执行结果。本公开在编译阶段利用形状运算关系和数据运算关确定了目标神经网络各网络层的形状计算规则和数据计算规则,并没有限定具体的数据大小,这使得执行阶段可以兼容各种大小的输入训练数据,所确定出的执行结果不容易出错,准确率较高,从而进一步确保网络训练的高效进行。[0117]在一种可能的实施方式中,执行模块302,用于按照以下步骤基于待训练的训练数据以及计算图中包含的形状运算关系和数据运算关系,执行得到针对目标神经网络训练代码的执行结果:[0118]基于待训练的训练数据以及计算图中包含的形状运算关系,确定目标神经网络各网络层输出的形状结果;[0119]基于目标神经网络各网络层输出的形状结果,获取分配的内存空间;[0120]利用分配好的内存空间执行数据运算关系,得到执行结果。[0121]在一种可能的实施方式中,执行模块302,用于按照以下步骤基于待训练的训练数据以及计算图中包含的形状运算关系,确定目标神经网络各网络层输出的形状结果:[0122]将待训练的训练数据的数据尺寸作为计算图中包含的形状运算关系的输入数据;[0123]基于输入数据、目标神经网络各网络层对应的网络尺寸、以及目标神经网络中各网络层对应的形状计算规则,确定目标神经网络各网络层输出的形状结果。[0124]在一种可能的实施方式中,执行模块302,用于按照以下步骤基于输入数据、目标神经网络各网络层对应的网络尺寸、以及目标神经网络中各网络层对应的形状计算规则,确定目标神经网络各网络层输出的形状结果:[0125]基于输入数据、目标神经网络第一个网络层对应的网络尺寸、以及形状计算规则,确定目标神经网络第一个网络层输出的形状结果;[0126]针对除第一个网络层外的每个网络层,按照如下步骤确定该网络层输出的形状结[0127]基于目标神经网络上一个网络层输出的形状结果、目标神经网络上一个网络层对应的网络尺寸、以及形状计算规则,确定目标神经网络当前网络层输出的形状结果;[0128]依此循环,直至得到目标神经网络最后一个网络层输出的形状结果。[0129]在一种可能的实施方式中,执行模块302,用于按照以下步骤基于输入数据、目标神经网络各网络层对应的网络尺寸、以及目标神经网络中各网络层对应的形状计算规则,确定目标神经网络各网络层输出的形状结果:[0130]将目标神经网络中各网络层对应的形状计算规则进行合并,得到针对目标神经网络的形状计算规则;[0131]基于输入数据、目标神经网络最后一个网络层对应的网络尺寸、以及针对目标神经网络的形状计算规则,确定目标神经网络输出的形状结果。[0132]在一种可能的实施方式中,执行模块302,用于按照以下步骤利用分配好的内存空[0133]将待训练的训练数据的数据值、以及目标神经网络各网络层在编译过程中生成的网络参数值作为输入数据;[0134]利用分配好的内存空间,基于数据计算规则对输入数据执行运算过程,得到执行[0135]在一种可能的实施方式中,确定目标神经网络各网络层输出的形状结果的操作运行于第一平台,利用分配好的内存空间执行数据运算关系的操作运行于第二平台;[0137]在一种可能的实施方式中,按照如下一种方式执行形状运算关系和数据运算关[0138]在第一平台执行完成目标神经网络各网络层对应的形状运算关系的情况下,再在第二平台执行目标神经网络各网络层对应的数据运算关系;[0139]在第一平台执行完成目标神经网络当前网络层对应的形状运算关系,且在第二平台执行目标神经网络当前网络层对应的数据运算关系的情况下,在第一平台并行执行目标神经网络下一个网络层对应的形状运算关系。[0141]在确定目标神经网络各网络层输出的形状结果之后,验证目标神经网络各网络层输出的形状结果是否符合预设形状结果;在验证出符合预设形状结果的情况下,执行基于目标神经网络各网络层输出的形状结果,获取分配的内存空间的步骤。[0142]关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。[0143]本公开实施例还提供了一种电子设备,如图4所示,为本公开实施例提供的电子设备结构示意图,包括:处理器401、存储器402、和总线403。存储器4行的机器可读指令(比如,图3中的装置中获取模块301、执行模块302对应的执行指令等),当电子设备运行时,处理器401与存储器402之间通过总线403通信,机器可读指令被处理器401执行时执行如下处理:[0144]获取基于目标神经网络训练代码编译得到的计算图;其中,计算图中包含形状运算关系以及数据运算关系,形状表示信息和数据运算关系分别为采用数据形式表征的目标神经网络中各网络层对应的形状计算规则和数据计算规则;[0145]响应于针对计算图的执行指令,基于待训练的训练数据以及计算图中包含的形状运算关系和数据运算关系,执行得到针对目标神经网络训练代码的执行结果。[0146]本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 62541-8:2025 EN-FR OPC unified architecture - Part 8: Data access
- 【正版授权】 IEC 60335-2-116:2025 EN-FR Household and similar electrical appliances - Safety - Part 2-116: Particular requirements for furniture with electrically motorized parts
- 2025年大学大一(护理学)护理伦理规范阶段测试题及答案
- 2025年大学(建筑学)建筑设计原理试题及答案
- 制药安全知识培训资料课件
- 工程技术职位申报
- 工程安全讲师大赛课件
- 工程安全教育培训制度课件
- 2026年安全知识竞赛试题(含答案)
- 房颤消融公众健康教育策略
- 合肥市瑶海区S社区居家养老服务站建设研究:现状、问题与优化路径
- 果园防草布采购合同范本
- 《黄土原位测试规程》
- 冀教版(2024)三年级上册《称量物体》单元测试(含解析)
- 数学-湖南长郡中学、杭州二中、南师附中三校2025届高三4月联考试题+答案
- 医学三维可视化与虚拟现实技术:革新肝癌腹腔镜手术的探索与实践
- 统编版(2024)八年级上册历史新教材全册知识点复习提纲
- 水平定向钻施工技术应用与管理
- 风险金管理办法
- 校长在食堂从业人员培训会上的讲话
- (高清版)DBJ∕T 13-91-2025 《福建省房屋市政工程安全风险分级管控与隐患排查治理标准》
评论
0/150
提交评论