CN114168154A - 模型数据处理方法、装置、电子设备及存储介质 - Google Patents
模型数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114168154A CN114168154A CN202210127026.7A CN202210127026A CN114168154A CN 114168154 A CN114168154 A CN 114168154A CN 202210127026 A CN202210127026 A CN 202210127026A CN 114168154 A CN114168154 A CN 114168154A
- Authority
- CN
- China
- Prior art keywords
- intermediate representation
- image
- operator
- adjusted
- representation
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Abstract
本申请实施例公开了一种模型数据处理方法、装置、电子设备及存储介质,应用于计算机技术领域。其中方法包括:获取目标模型的多个算子分别对应的中间表示,从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示,对待调整中间表示进行调整,得到可融合的调整中间表示,将除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示,根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,根据至少一个目标中间表示确定调整后的目标模型。采用本申请实施例,可以提升编译优化后的模型效果。本申请实施例可以应用于云技术、人工智能、智慧交通、车载等各种场景。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种模型数据处理方法、装置、电子设备及存储介质。
背景技术
目前,开发人员可以通过编译器实现对初始模型的编译优化,以获得性能更优的最终模型。例如,可以利用编译器对AI(Artificial Intelligence, 人工智能)模型(如场景匹配模型)进行编译优化。在利用编译器进行编译优化时,通常是对初始模型中的多个算子对应的中间表示进行融合,以实现算子融合,融合后可以进行内存复用以提高模型性能。然而,该方式下算子之间无法很好地进行融合,使得针对模型的编译优化效果低。因此,如何提高编译优化后的模型效果成为一个亟待解决的问题。
发明内容
本申请实施例提供了一种模型数据处理方法、装置、电子设备及存储介质,可以有效地提升编译优化后的模型效果和模型性能。
一方面,本申请实施例提供了一种模型数据处理方法,该方法包括:
获取目标模型的多个算子分别对应的中间表示;任一个中间表示包含对对应算子进行分解得到的表示文件;
从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示;
对待调整中间表示进行调整,得到可融合的调整中间表示;
将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示;
根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。
一方面,本申请实施例提供了一种图像处理方法,该方法包括:
获取待处理图像;
调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果;
其中,该调整后的目标模型是采用上述所描述的方法对目标模型进行调整得到。
一方面,本申请实施例提供了一种模型数据处理装置,该装置包括:
获取模块,用于获取目标模型的多个算子分别对应的中间表示;任一个中间表示包含对对应算子进行分解得到的表示文件;
确定模块,用于从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示;
处理模块,用于对待调整中间表示进行调整,得到可融合的调整中间表示;
确定模块,还用于将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示;
处理模块,还用于根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。
一方面,本申请实施例提供了一种图像处理装置,该装置包括:
获取模块,用于获取待处理图像;
调用模块,用于调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果;
其中,该调整后的目标模型是采用上述相关描述对目标模型进行调整得到。
一方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,其中,存储器用于存储计算机程序,该计算机程序包括程序指令,处理器被配置用于调用该程序指令,执行上述方法中的部分或全部步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时,用于执行上述方法中的部分或全部步骤。
相应地,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序指令,该程序指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该程序指令,处理器执行该程序指令,使得该计算机设备执行上述提供的模型数据处理方法和图像处理方法。
本申请实施例中可以获取目标模型的多个算子分别对应的中间表示,从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示,对待调整中间表示进行调整,得到可融合的调整中间表示,将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示,根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。通过上述方法,可以确定出不具备融合特性的待调整中间表示,并在调整后得到具有融合特性的调整中间表示,从而在进行融合时可以使得更多的算子能够融合,提高算子融合率,进而可以提高内存复用率,以及提高编译优化后的模型效果和模型性能。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用架构示意图;
图2为本申请实施例提供的一种模型数据处理方法的流程示意图;
图3为本申请实施例提供的一种目标模型的示意图;
图4为本申请实施例提供的一种中间表示的示意图;
图5为本申请实施例提供的一种确定调整中间表示的场景示意图;
图6为本申请实施例提供的一种确定多个算子之间的算法结构的场景示意图;
图7为本申请实施例提供的一种模型数据处理方法的流程示意图;
图8为本申请实施例提供的一种目标模型的示意图;
图9a为本申请实施例提供的一种算法结构的示意图;
图9b为本申请实施例提供的一种多个拆分算子之间的算法结构以及模型结构的示意图;
图10a为本申请实施例提供的一种基于目标编译器对目标模型进行编译优化的场景示意图;
图10b为本申请实施例提供的一种基于目标编译器对目标模型进行编译优化的场景示意图;
图10c为本申请实施例提供的一种基于目标编译器对目标模型进行编译优化的场景示意图;
图10d为本申请实施例提供的一种基于目标编译器对目标模型进行编译优化的场景示意图;
图11为本申请实施例提供的一种基于场景匹配模型的数据处理框架示意图;
图12为本申请实施例提供的一种图像处理方法的流程示意图;
图13为本申请实施例提供的一种模型数据处理装置的结构示意图;
图14为本申请实施例提供的一种图像处理装置的结构示意图;
图15为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请实施例提出的模型数据处理方法实现于电子设备,该电子设备可以是服务器,也可以是终端。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。本申请实施例可以应用于云技术、AI、智慧交通、车载等各种场景。
本申请实施例涉及人工智能技术领域,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。如本申请技术方案可以实现该技术领域中的相关AI模型的编译优化。
本申请实施例可涉及云技术相关技术领域,比如具体可涉及云存储(cloudstorage)技术领域,其中,云存储是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统 (以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。如本申请技术方案可以将编译优化后得到的模型存储在云存储系统中。
在一些实施例中,请参见图1,图1为本申请实施例提供的一种应用架构示意图,可以通过该应用架构执行本申请所提出的模型数据处理方法。如图1所示,图1可包括电子设备以及用于进行编译优化的目标模型(此处对模型结构不做限制)。电子设备可以获取构成目标模型的多个算子,以及获取每个算子对应的中间表示,并基于该多个算子分别对应的中间表示得到多个待融合中间表示,对该多个待融合中间表示进行融合,得到至少一个目标中间表示,以实现算子融合,并根据至少一个目标中间表示确定调整后的目标模型,该调整后的目标模型即为对目标模型进行编译优化后得到的模型。以及目标模型的模型结构和调整后的目标模型的模型结构可以不相同。
可以理解的是,图1只是示例性地表征本申请技术方案的可能存在的应用架构,并不对本申请技术方案的具体架构进行限定,即本申请技术方案还可以提供其他形式的应用架构。
可选的,在一些实施例中,电子设备可根据实际的业务需求,执行该模型数据处理方法以提高编译优化后的模型效果。本申请技术方案可以应用于任意模型的编译优化场景中,即电子设备可以得到待编译优化的目标模型包含的多个算子,并获取多个算子分别对应的中间表示,从中确定出不可融合的中间表示,并对该不可融合的中间表示进行调整得到可融合的调整中间表示,从而得到多个待融合中间表示,并基于该多个待融合中间表示进行融合以确定调整后的目标模型,可以使得算子能够更好的融合,从而提高模型性能。例如,本申请技术方案可应用于AI模型的编译优化场景,如该AI模型可以为用于进行场景(如地理场景)匹配的模型,或用于进行语音识别的模型等等。
可选的,本申请涉及的数据如算子的中间表示等,可以存储于数据库中,或者可以存储于区块链中,如通过区块链分布式系统存储,本申请不做限定。
可以理解,上述场景仅是作为示例,并不构成对于本申请实施例提供的技术方案的应用场景的限定,本申请的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述的描述,本申请实施例提出了一种模型数据处理方法,该方法可以由上述提及的电子设备来执行。请参见图2,图2为本申请实施例提供的一种模型数据处理方法的流程示意图。如图2所示,本申请实施例的模型数据处理方法的流程可以包括如下:
S201、获取目标模型的多个算子分别对应的中间表示。
其中,任一个中间表示包含对对应算子进行分解得到的表示文件。
在一个可能的实施例中,目标模型可以为任意类型的模型。目标模型可以包含多个算子,该多个算子的具体数量可以根据实际应用场景确定,一个算子可以表征目标模型中的一种算法模块,该一个算法模块可以包含多种算法类型,一种算法类型可以指一种运算符对应的算法类型,例如针对加法的算法类型,或乘法的算法类型等等,即可以理解为是一种针对输入数据的计算逻辑。目标模型的多个算子中可以存在表示相同计算逻辑的算子。例如,如图3所示,图3为本申请实施例提供的一种目标模型的示意图;其中,图3表征了目标模型的模型结构,目标模型的多个算子及该多个算子之间的运算关系(可以包含运算次序等关系)构成目标模型的模型结构,此处,目标模型所包括的多个算子可以是算子1~算子5,设算子3表征了卷积算法模块,则该算子3表征的卷积算法模块可以包含针对卷积的算法类型,以及表示对输入数据进行卷积计算。
在一个可能的实施例中,电子设备在利用编译器对目标模型进行编译优化(特指深度学习编译优化)时,可以将目标模型中的每个算子利用IR(IntermediateRepresentation,中间表示)描述进行表示,得到每个算子对应的中间表示,并对该中间表示进行优化,从而可以得到调整后的目标模型。电子设备可以对算子所包含的算法进行分解,得到至少一个表示文件,并将该至少一个表示文件作为算子对应的中间表示,一个表示文件可以对应算子分解后的一种算法。一个算子可以对应有一个中间表示,一个中间表示可以包含一个或者多个表示文件,一个表示文件可以对应于一种算法类型。
例如,算子为y=a+b*c,分解后得到的一个表示文件可以对应该算子中的“+”(即该算子所包含的加法的算法,对应的算法类型即为加法的算法类型)以及一个表示可以对应该算子中的“*”(即该算子所包含的一个乘法的算法,对应的算法类型即为乘法的算法类型)。
其中,对算子所表征的算法模块进行分解可以是基于算法的计算顺序和/或所包含的运算符进行分解的,以及分解后若得到两个或两个以上的表示文件时,该两个或两个以上的表示文件之间存在排列顺序,该排列顺序基于各个表示文件对应的算法以及针对算法模块中的各个算法的计算顺序确定。至少一个表示文件中可以存在算法类型相同的表示文件。
在一些实施例中,算法类型可以与对输入数据的处理方式有关,例如对输入数据进行相加或进行卷积等等,以及一种算法类型可以包含一种或多种处理方式,具体的算法类型可以由相关业务人员根据实际业务场景设置。
例如,如图4所示,图4为本申请实施例提供的一种中间表示的示意图;其中,设算子为y=a+b*c+d-e,该算子中的算法包括加法算法、乘法算法和减法算法,因此算子所表征的算法模块具有三种处理方式(一种是相加、一种是相乘、一种是相减),此处设运算符“+”、运算符“*”和运算符“-”均属于不同算法类型,因此该算子包含三种算法类型(设表示依次表示为针对加法的算法类型(类型1)、针对乘法的算法类型(类型2)和针对减法的算法类型(类型3)),因此对该算子分解得到中间表示可以为三个或四个表示文件;(a)若为四个中间表示时,第一个表示文件对应类型2、第二个表示文件对应类型1、第三个表示文件对应类型1、第四个表示文件对应类型3,此时四个表示文件的排列顺序基于算法的计算顺序确定,可以如图4中的(1)所示;(b)若为三个中间表示时,第一个表示文件对应类型2,第二个表示文件对应类型1,第三个表示文件对应类型3,此时四个表示文件的排列顺序基于算法的计算顺序确定,可以如图4中的(2)所示;前述表示文件中的具体内容仅为示例,具体表现形式不做限制。
S202、从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示。
在一个可能的实施方式中,由于一个算子的中间表示可以包括至少一个表示文件,一个表示文件可以对应于一种算法类型,因此一个算子的中间表示可以对应一种或多种算法类型(即为该算子所包含的至少一个表示文件分别对应的算法类型),因此电子设备可以根据算子的中间表示对应的多种算法类型确定出不可融合的中间表示。该不可融合的中间表示为不具备融合特性的中间表示。电子设备可以获取用于进行编译优化的编译器所指示的互斥编译算法对,该互斥编译算法对的数量可以是一个或者多个,该互斥编译算法对是由编译器的编译配置所决定的,该互斥编译算法对具体根据编译器类型确定(即可以根据编译器的配置确定),不同类型的编译器可能具有不同的互斥编译算法对,一个互斥编译算法对包含在编译器中不能同时与其他算法类型进行融合的两种算法类型。
因此,可以理解的是,该互斥编译算法对包含在编译器中处于互斥状态的两种算法类型,若某个算子的中间表示所对应的一种或多种算法类型包含该处于互斥的两种算法类型(即包含至少一个互斥编译算法对)时,则该算子不具备与其他算子同时进行融合的特性,因此可以将该算子对应的中间表示作为不可融合的待调整中间表示。
其中,一个编译器所指示的互斥编译算法对可以有多个,算子的中间表示对应的多种算法类型中只要存在一个互斥编译算法对时,就表示该算子不可融合。针对不同编译器所所指的互斥编译算法对可以不同。以及在目标编译器中处于互斥的两种算法类型可以理解为是,该编译器不支持包含任意算法类型的算子与同时包含该两种互斥的算法类型的算子进行融合,也就是说,当一个算子的中间表示对应的多种算法类型中所包含互斥的两种算法类型时,编译器无法将任意其他算子的中间表示和该算子的中间表示进行融合,因此可以对该算子的中间表示进行调整,以使得该算子的中间表示具有可以与其他中间表示进行融合的特性。
例如,设互斥编译算法对包含的处于互斥的两种算法类型为算法类型A和算法类型B,以及中间表示A对应的算法类型同时包括算法类型A和算法类型B,中间表示B对应的算法类型包括算法类型A,中间表示C对应的算法类型包括算法类型B,中间表示D对应的算法类型包括其他算法类型,此时中间表示A不具备与中间表示B-D中任一种中间表示进行融合的条件,即中间表示A对应的算子无法实现与中间表示B-D中任一种中间表示对应的算子的相互融合。
S203、对待调整中间表示进行调整,得到可融合的调整中间表示。
在一个可能的实施方式中,由于待调整中间表示文件对应的多种算法类型可以包含至少两种互斥的算法类型。因此电子设备对待调整中间表示进行调整,得到可融合的调整中间表示,可以是将待调整中间表示包含的多个表示文件进行归组,如可以是将待调整中间表示所包含的对应的算法类型中处于互斥状态的表示文件划分到不同的文件分组,从而得到至少两个文件分组,以使得待调整中间表示中包含的至少两种互斥的算法类型的表示文件可以分别归组至不同的文件分组中,并将该至少两个文件分组确定为调整中间表示。调整中间表示可以有多个,一个文件分组对应一个调整中间表示,一个待调整中间表示在调整后可以得到至少两个调整中间表示。
在一些实施例中,电子设备对待调整中间表示包含的多个表示文件进行分组可以是按照多个表示文件之间排列顺序依次对多个表示文件进行归组,以使得为互斥的算法类型的表示文件可以处于不同的文件分组中。电子设备在对多个表示文件进行分组时,可以是依次将一个表示文件划分到一个文件分组中;设待调整中间表示对应的若干种算法类型包含一个互斥编译算法对,该互斥编译算法对包含第一算法类型和第二算法类型,第一算法类型和第二算法类型是不同的任意算法类型,以及设第一算法类型对应的表示文件在排列顺序中处于第二算法类型对应的表示文件之前,则可以是,依次遍历多个表示文件直至第一算法类型对应的表示文件,并将遍历到的至少一个表示文件划分到一个文件分组中,并将剩余的表示文件划分到另一个文件分组中。此处还可以有其他归组方式,对具体得到的多个文件分组不做限制。
例如,如图5所示,图5为本申请实施例提供的一种确定调整中间表示的场景示意图;其中,待调整中间表示可以包括表示文件1-5,设表示文件2对应的算法类型和表示文件4对应的算法类型为互斥的算法类型,因此对表示文件1-5进行归组可以是:(1)方式一:将每个表示文件分别划分到一个文件分组中,得到5个文件分组;(2)方式二:按照排列顺序依次遍历至表示文件2,并将遍历到的表示文件1和表示文件2划分到一个文件分组,并将其余的表示文件3-5划分到一个文件分组,得到2个文件分组;(3)方式三:可以是依次将表示文件1和表示文件2划分到一个文件分组,以及将表示文件3和表示文件4划分到一个文件分组,以及将表示文件5划分到一个文件分组,得到3个文件分组;等等,此处针对表示文件1-5还可以有其他归组方式,最终得到的多个文件分组满足第一算法类型对应的表示文件和第二算法类型对应的表示文件处于不同文件分组中。
S204、将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示。
在一些实施例中,电子设备可以将目标模型的多个算子对应的中间表示中除待调整中间表示之外的中间表示(即目标模型原本可融合的中间表示,也就是未进行调整的中间表示)以及上述对待调整中间表示进行调整所获取到的若干调整中间表示均作为待融合中间表示,一个待融合中间表示也可以转化表示为对应的算子,因此对待调整中间表示进行调整得到多个融合中间表示,可以理解为是将待调整中间表示对应的算子进行拆分,得到多个融合中间表示分别转化表示的对应算子(即拆分算子),此时该拆分算子则具备融合特性。后续在对多个待融合中间表示进行融合的过程可以理解为是对算子融合的过程。
例如,待调整中间表示对应的算子1包含的算法模块有加法算法和减法算法,以及基于该算子1包含的算法模块可以对应得到两个调整中间表示,其中,调整中间表示A对应针对加法的算法类型,调整中间表示B对应针对减法的算法类型,因此可以理解为将算子1拆分为算子2和算子3,算子2包含的算法模块有加法算法,算子3包含的算法模块有减法算法,此时调整中间表示A对应算子2,调整中间表示B对应算子3。
S205、根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。
在一些实施例中,多个算子之间的算法结构包含目标模型的模型结构,以及在对待调整中间表示进行调整得到调整中间表示时,可以对调整中间表示进行算子还原以确定对该待调整中间表示对应的算子进行拆分后得到多个拆分算子,并基于算子对应的算法确定多个拆分算子之间的算法结构,因此电子设备将目标模型的模型结构以及多个拆分算子之间的算法结构确定最终的多个算子之间的算法结构。
例如,如图6所示,图6为本申请实施例提供的一种确定多个算子之间的算法结构的场景示意图;其中,设目标模型包括算子1-5,以及目标模型的模型结构如图6中的(1)所示;设算子2为待调整中间表示对应的算子,以及算子2为y=a+b*c,即该算子2包含的算法模块有加法算法和乘法算法,设将算子2拆分为算子6和算子7,算子6对应乘法算法,算子7对应加法算法,因此基于算子2包含的算法模块确定算子6和算子7之间的算法结构如图6中的(2)所示;由此,算子1-5之间的算法结构最终可以如图6中的(3)所示,即算子1-5之间的算法结构为算子1和算子3-7之间的算法结构,算子1和算子3-7中每个算子对应一个待融合中间表示。
在一些实施例中,电子设备可以利用指定的编译器以根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示。一个目标中间表示对应一个算子,因此融合后得到的目标中间表示则表征了融合后的算子对应的中间表示;其中,电子设备根据多个算子之间的算法结构对多个待融合中间表示进行融合的具体方式可以参见下述实施例中步骤S706中的相关描述。
此外,电子设备可以通过至少一个目标中间表示确定每个目标中间表示对应的算子,并根据每个目标中间表示对应的算子确定调整后的目标模型。以及,确定调整后的目标模型的过程为根据至少一个目标中间表示确定调整后的目标模型的模型结构以及对应的模型代码的过程,从而可以实现模型的编译优化。因此编译优化即为利用编译器通过原始的目标模型对应的源代码生成性能更高的调整后的目标模型对应的目标代码。
本申请实施例中电子设备可以获取目标模型的多个算子分别对应的中间表示,从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示,对待调整中间表示进行调整,得到可融合的调整中间表示,将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示,根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。通过上述方法,可以确定出不具备融合特性的待调整中间表示,并在调整后得到具有融合特性的调整中间表示,从而在进行融合时可以使得更多的算子能够融合,提高算子融合率,进而可以提高内存复用率,以及提高编译优化后的模型效果和模型性能。
请参见图7,图7为本申请实施例提供的一种模型数据处理方法的流程示意图,该方法可以由上述提及的电子设备执行。如图7所示,本申请实施例中模型数据处理方法的流程可以包括如下:
S701、获取目标模型的多个算子分别对应的中间表示。其中,步骤S701的具体实施方式可以参见上述实施例的相关描述。
S702、从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示。
在一个可能的实施方式中,设目标模型是基于目标编译器进行编译,以及多个算子分别对应的中间表示包含第i个中间表示,i为小于或等于多个双子的总数量的正整数;第i个中间表示包含对对应算子进行分解所得到的N个表示文件,N为正整数,一个表示文件对应一种算法类型。
因此电子设备从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示具体可以是,获取目标编译器所指示的M个互斥编译算法对,一个互斥编译算法对包含在目标编译器中处于互斥的两种算法类型,M为正整数;若N个表示文件分别对应的算法类型中包含M个互斥编译算法对的至少一个互斥编译算法对,则将第i个中间表示为不可融合的待调整中间表示。其中若存在两种算法类型,且目标编译器不支持任意其他算法类型对应的中间表示与同时包含该两种算法类型的中间表示进行融合,则该两种算法类型为一个互斥编译算法对。目标编译器不同时,对应的互斥编译算法对可以不同。
可选地,电子设备基于目标编译器对目标模型进行编译优化,该目标编译器可以是TVM(Tensor Virtual Machine,张量虚拟机)编译器、Tensorflow(一种基于数据流图的处理框架)的XLA(Accelerated Linear Algebra,加速线性代数)编译器、LLVM(low levelvirtual machine,低级虚拟机)编译器等等。以及电子设备在获取算子对应的中间表示时,可以是基于Relay(一种编程语言) IR、基于HLO(High Level Optimizer,高级优化器) IR、基于MLIR(Multi-Level Intermediate Representation,多级中间表示)等。其中,基于Relay IR得到算子对应的中间表示时,可以是在使用TVM编译器实现算子融合的编译优化;基于HLO IR得到算子对应的中间表示时,可以是在使用Tensorflow的XLA编译器实现算子融合的编译优化;基于MLIR得到算子对应的中间表示时,可以是在使用LLVM编译器进行硬件相关的底层优化以实现算子融合的编译优化。
S703、根据待调整中间表示对应的算法类型对待调整中间表示中的N个表示文件进行归组,得到多个文件分组。
在一个可能的实施方式中,从多个算子对应的中间表示中确定出的待调整中间表示可以有一个或多个,每个待调整中间表示进行调整的过程和原理相同,此处以待调整中间表示为第i个中间表示为例。设待调整中间表示包含的N个表示文件分别对应的算法类型中包含M个互斥编译算法对中的目标互斥编译算法对,设该目标互斥编译算法对的数量为1,以及设该目标互斥编译算法对包含第一算法类型和第二算法类型。因此,电子设备可以根据第一算法类型和第二算法类型对第i个中间表示的N个表示文件进行归组,得到多个文件分组。该多个文件分组至少包括第一文件分组和第二文件分组,该第一文件分组包含第一算法类型对应的表示文件,以及第二文件分组包含第二算法类型对应的表示文件。其中,根据第一算法类型和第二算法类型对第i个中间表示的N个表示文件进行归组的具体方式可以参见上述实施例的相关描述,此处不再赘述。
可以理解的是,得到的多个文件分组的数量与N个表示文件分别对应的算法类型中所包含的互斥算法类型的数量相关。例如,N个表示文件分别对应的算法类型若包含一个互斥编译算法对(第一算法类型和第二算法类型),则得到的多个文件分组的数量可以是大于或等于二;N个表示文件分别对应的算法类型若包含两个互斥编译算法对(一对为第一算法类型和第二算法类型,以及另一对为第三算法类型和第四算法类型),则得到的多个文件分组的数量可以是大于或等于四;N个表示文件分别对应的算法类型若包含两个互斥编译算法对(一对为第一算法类型和第二算法类型,以及另一对为第二算法类型和第三算法类型),则得到的多个文件分组的数量可以是大于或等于三。
S704、根据多个文件分组确定可融合的调整中间表示。
在一个实施例中,电子设备可以将该多个文件分组确定为可融合的调整中间表示。一个文件分组确定一个调整中间表示。一个待调整中间表示在进行调整后,至少得到两个调整中间表示,一个调整中间表示可以转化表示为一个算子,因此对待调整中间表示进行调整的过程可以理解为是对待调整中间表示对应的算子进行拆分的过程。
S705、将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示。其中,步骤S705的具体实施方式可以参见上述实施例的相关描述,此处不再赘述。
S706、根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。
在一个可能的实施方式中,多个待融合中间表示包括第j个待融合中间表示,j为小于或等于多个待融合中间表示的总数量的正整数。电子设备根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示具体可以是,根据每个待融合中间表示所包含的表示文件对应的算法类型确定每个待融合中间表示的中间表示类型,根据算法结构及每个待融合中间表示的中间表示类型,在多个待融合中间表示中确定第j个待融合中间表示的关联中间表示,对第j个待融合中间表示及关联中间表示进行融合,得到至少一个目标中间表示。
其中,算法类型与中间表示类型之间存在对应关系,一个中间表示类型可以包含多种算法类型,以及每个中间表示类型具有类型等级;若一个待融合中间表示包含多种算法类型,且该多种算法类型不包括互斥的算法类型,以及该多种算法类型对应的中间表示类型不同时,该待融合中间表示的中间表示类型为类型等级最高的中间表示类型;以及若一个待融合中间表示包含多种算法类型,且该多种算法类型包括互斥的算法类型时,此时该待融合中间表示的中间表示类型为不可融合类型。例如,待融合中间表示中的表示文件A对应算法类型A、表示文件B对应算法类型B,以及表示文件A对应中间表示类型A、表示文件B对应中间表示类型B,设该中间表示类型A的类型等级为3、中间表示类型B的类型等级为1,因此该待融合中间表示的中间表示类型为中间表示类型A。可选地,算法类型与中间表示类型之间的对应关系,以及中间表示类型的类型等级可以是与具体使用的目标编译器相关,由目标编译器来指示具体的对应关系和具体的类型等级。以及目标编译器的不同,该具体对应关系和具体的类型等级可以存在差异。
可以理解的是,一个待融合中间表示进行算子还原后可以对应一个算子,该多个待融合中间表示分别对应的算子包含未调整的中间表示对应的算子以及包含对待调整中间表示对应的算子进行拆分后得到的算子。例如,如图6中(3)所示,多个待融合中间表示分别对应的算子包含算子1和算子3-7,因此第j个待融合中间表示算子还原后的得到的算子可以是算子1和算子3-5中的任一算子,也可以是对算子2进行拆分后得到的算子6-7中的任一算子。
在一些实施例中,多个算子之间的算法结构可以包含目标模型的模型结构以及多个拆分算子之间的算法结构,以及多个待融合中间表示包括未进行调整的中间表示以及调整中间表示;电子设备根据算法结构及每个待融合中间表示的中间表示类型,在多个待融合中间表示中确定第j个待融合中间表示的关联中间表示具体可以是:
(1)当第j个待融合中间表示为未进行调整的中间表示时,根据目标模型的模型结构,在未拆分算子集合中确定第j个待融合中间表示对应的关联算子,该未拆分算子集合为未进行调整的中间表示对应的算子,根据模型结构的指示确定处于第j个待融合中间表示对应的算子与关联算子之间的中间算子,若根据第j个待融合中间表示的中间表示类型、关联算子对应的待融合中间表示的中间表示类型以及中间算子对应的待融合中间表示的中间表示类型确定第j个待融合中间表示、关联算子对应的待融合中间表示以及中间算子对应的待融合中间表示具备融合条件,即满足融合规则,则将关联算子对应的待融合中间表示确定为第j个待融合中间表示的关联中间表示;
(2)当第j个待融合中间表示为调整中间表示时,根据多个拆分算子之间的算法结构以及模型结构,在未拆分算子集合中确定第j个待融合中间表示对应的关联算子,根据多个拆分算子之间的算法结构的指示,在多个拆分算子中确定处于第j个待融合中间表示对应的算子与关联算子之间的中间拆分算子,若根据第j个待融合中间表示的中间表示类型、关联算子对应的待融合中间表示的中间表示类型以及中间拆分算子对应的待融合中间表示的中间表示类型确定第j个待融合中间表示、关联算子对应的待融合中间表示以及中间拆分算子对应的待融合中间表示具备融合条件,则将关联算子对应的待融合中间表示确定为第j个待融合中间表示的关联中间表示;以及若不具备融合条件,则该第j个待融合中间表示不存在关联中间表示。
在一些实施例中,基于(1),根据目标模型的模型结构,在未拆分算子集合中确定第j个待融合中间表示对应的关联算子具体可以是,根据模型结构的指示确定第j个待融合中间表示对应的目标算子的支配点算子,并将该支配点算子作为目标算子的关联运算算子,该支配点算子为目标算子的出度路径的共同连接算子,即若目标算子的出度路径为一条时,该支配点算子即为目标算子的输出所连接的算子(也称父节点算子),若目标算子的出度路径为多条时,该支配点算子即为目标算子的输出路径汇聚的算子;其中,当该目标算子的出度路径为一条,且输出所连接的算子为目标模型的模型结构所指示的最后一个根节点算子,或者输出未连接算子,或者输出所连接的算子为拆分的算子,或者中间算子存在拆分的算子时,此时目标算子的关联算子则为空,即没有关联算子,即第j个待融合中间表示不存在关联中间表示。
以及,若根据第j个待融合中间表示的中间表示类型、关联算子对应的待融合中间表示的中间表示类型以及中间算子对应的待融合中间表示的中间表示类型确定第j个待融合中间表示、关联算子对应的待融合中间表示以及中间算子对应的待融合中间表示具备融合条件可以是,若确定前述待融合中间表示满足目标编译器所指示的针对中间表示类型的融合规则时,则具备融合条件。该融合规则可由目标编译器设置,不同的目标编译器所指示的融合规则可以不同。例如,该融合规则可以是,若前述待融合中间表示的中间表示类型包括仅第一类型和第二类型,且第一类型的类型等级高于第二类型的类型等级,则前述待融合中间表示可以进行融合,且融合后得到的融合中间表示的中间表示类型为第一类型。
例如,如图8所示,图8为本申请实施例提供的一种目标模型的示意图;其中,图8包括目标模型的模型结构,设算子1-8属于未拆分算子集合,算子8属于根节点算子,算子9-10为针对原始算子得到的拆分的算子,以及设第j个待融合中间表示对应算子3,此时基于模型结构,在未拆分算子集合中确定出第j个待融合中间表示的关联算子为算子6,以及处于算子3和算子6之间的中间算子为算子4-5,若算子3-6各自对应的待融合中间表示的中间表示类型具备融合条件,则该第j个待融合中间表示的关联中间表示为算子6对应的待融合中间表示;设第j个待融合中间表示对应算子2,该算子2输出连接拆分的算子,则第j个待融合中间表示没有关联中间表示;设第j个待融合中间表示对应的算子1,基于模型结构确定出的关联算子为算子7,处于算子1-算子7之间的中间算子为算子1-7和算子9-10,此时中间算子存在拆分的算子,则第j个待融合中间表示没有关联中间表示;设第j个待融合中间表示对应算子7,该算子7输出连接根节点算子,则第j个待融合中间表示没有关联中间表示;设第j个待融合中间表示对应算子8,该算子8为根节点算子,则第j个待融合中间表示没有关联中间表示。
在一些实施例中,基于(2),设待调整中间表示对应的算法类型包括互斥编译算法对(以一个为例,该互斥编译算法对包括第一算法类型和第二算法类型)和其他算法类型(可以有一个或多个),以及在调整之后,将包含第一算法类型的第一文件分组(可以有一个或多个)、包含第二算子类型的第二文件分组(可以有一个或多个)以及包含其他算法类型的其他文件分组(可以有一个或多个)作为调整中间表示,以及该待调整中间表示对应原始算子,该调整中间表示可以转化表示对原始算子拆分后得到的拆分算子,其中拆分算子之间存在算法结构。
例如,如图9a所示,如图9a为本申请实施例提供的一种算法结构的示意图,后续在以多个拆分算子之间的算法结构进行阐述时,均以图9a所示的算法结构为例;其中,设算子1.1为第一其他文件分组对应的拆分算子、算子1.2为第一文件分组对应的拆分算子、算子1.3为第二其他文件分组对应的拆分算子、算子1.4为第二文件分组对应的拆分算子、算子1.5为第三其他文件分组对应的拆分算子。
因此,根据多个拆分算子之间的算法结构以及模型结构,在未拆分算子集合中确定第j个待融合中间表示对应的关联算子具体可以是:
①若第j个待融合中间表示对应的拆分算子为第一文件分组对应的拆分算子,且第一文件分组对应的拆分算子与第二文件分组对应的拆分算子仅存在第一连接关系时,基于模型结构,在未拆分算子集合中,将第j个待融合中间表示对应的拆分算子所属的未拆分算子连接的直接前置算子作为关联算子,即设模型结构为算子A→算子B(包含算子1.1-算子1.5)→算子C,此时算子1.1所属的未拆封算子为算子B,直接前置算子(关联算子)为算子A;
②若第j个待融合中间表示对应的拆分算子为第二文件分组对应的拆分算子,且第一文件分组对应的拆分算子与第二文件分组对应的拆分算子仅存在第一连接关系时,基于模型结构,在未拆分算子集合中,将第j个待融合中间表示对应的拆分算子所属的未拆分算子连接的直接后置算子作为关联算子,即设模型结构为算子A→算子B(包含算子1.1-算子1.5)→算子C,此时算子1.4所属的未拆封算子为算子C,直接前置算子(关联算子)为算子C;
③若第j个待融合中间表示对应的拆分算子为其他文件分组对应的拆分算子时,基于模型结构,在未拆分算子集合中,确定第j个待融合中间表示对应的拆分算子所属的未拆分算子连接的直接前置算子和直接后置算子,并根据多个拆分算子之间的算法结构确定第j个待融合中间表示对应的拆分算子分别与第一文件分组对应的拆分算子以及第二文件分组对应的拆分算子之间的连接关系;
④基于上述③,若第j个待融合中间表示对应的拆分算子与第一文件分组对应的拆分算子之间仅存在第一连接关系,则第j个待融合中间表示对应的关联算子为直接前置算子;
⑤若第j个待融合中间表示对应的拆分算子与第一文件分组对应的拆分算子之间的连接关系属于第二连接关系,且第j个待融合中间表示对应的拆分算子与第二文件分组对应的拆分算子之间仅存在第一连接关系,则第j个待融合中间表示对应的关联算子可以为直接前置算子也可以为直接后置算子;可选地,可以预先结合融合规则判断关联算子,如可以是当基于融合规则确定该第j个待融合中间表示对应的关联算子能与直接前置算子融合且不能与直接后置算子融合时,关联算子为直接前置算子;当基于融合规则确定该第j个待融合中间表示对应的关联算子不能与直接前置算子融合且能与直接后置算子融合时,关联算子为直接后置算子;当基于融合规则确定能与直接前置算子融合且能与直接后置算子融合时,可以任选一个或者从中选择可以融合更多算子的算子作为关联算子;当基于融合规则确定不能与直接前置算子融合且不能与直接后置算子融合时,任选一个作为关联算子;
⑥若第j个待融合中间表示对应的拆分算子与第二文件分组对应的拆分算子之间仅存在第二连接关系,则第j个待融合中间表示对应的关联算子为直接后置算子;
⑦若均不满足上述条件时,此时第j个待融合中间表示不存在关联算子;
其中,第一连接关系为第j个待融合中间表示对应的拆分算子为文件分组对应的拆分算子的前置算子(包括直接或间接),第二连接关系为第j个待融合中间表示对应的拆分算子为文件分组对应的拆分算子的后置算子(包括直接或间接);以及存在关联算子并不代表一定可以融合,是否能融合需结合具体的融合规则确定。
例如,如图9b所示,图9b为本申请实施例提供的一种多个拆分算子之间的算法结构以及模型结构的示意图;其中,图9b中的(1)为多个拆分算子之间的算法结构,以及图9b中的(2)为部分模型结构,该多个拆分算子所属的未拆分算子(原始算子)的直接前置算子为算子2,直接后置算子为算子3;以及若第j个待融合中间表示对应的拆分算子为如图9b中的算子1.1时,此时满足上述中的步骤④,因此关联算子为算子2;若第j个待融合中间表示对应的拆分算子为如图9b中的算子1.2时,此时满足上述中的步骤①,因此关联算子为算子2;若第j个待融合中间表示对应的拆分算子为如图9b中的算子1.3时,此时满足上述中的步骤⑤,因此关联算子为算子2或算子3(可以任选一个算子,或者从中选出能融合的算子);若第j个待融合中间表示对应的拆分算子为如图9b中的算子1.4时,此时满足上述中的步骤②,因此关联算子为算子3;若第j个待融合中间表示对应的拆分算子为如图9b中的算子1.5时,此时满足上述中的步骤⑥,因此关联算子为算子3。
在一些实施例中,基于上述(2),若根据第j个待融合中间表示的中间表示类型、关联算子对应的待融合中间表示的中间表示类型以及中间拆分算子对应的待融合中间表示的中间表示类型确定第j个待融合中间表示、关联算子对应的待融合中间表示以及中间拆分算子对应的待融合中间表示具备融合条件可以是,若确定前述待融合中间表示满足目标编译器所指示的针对中间表示类型的融合规则,则具备融合条件。例如,如图9b中,算子1.2的关联算子为算子2,以及基于算法结构确定中间拆分算子为算子1.1,因此若算子1.2、算子1.1和算子2各自对应的待融合中间表示的中间表示类型满足融合规则,则表示前述待融合中间表示具备融合条件。
可以理解的是,当确定第j个待融合中间表示的关联中间表示(可以有一个或多个)时(j为1至多个待融合算子的数量的正整数,即电子设备依次确定每个待融合中间表示的关联中间表示),并在融合阶段,基于目标编译器将第j个待融合中间表示与第j个待融合中间表示的关联中间表示进行融合,得到至少一个目标中间表示,以实现算子融合。
需要说明的是,在进行算子融合时,是先确定未调整的待融合中间表示的关联中间表示,然后确定调整中间表示的关联中间表示,并在融合阶段进行中间表示的融合。例如,设多个算子之间的算法结构为图6中的(3)所示,确定第1个待融合中间表示和第3-5个待融合中间表示的关联中间表示,然后确定第6-7个待融合中间表示的关联中间表示,如设第6个待融合中间表示的关联中间表示为第1个待融合中间表示,设第7个待融合中间表示的关联中间表示为第3-5个待融合中间表示;则在融合阶段将第6个待融合中间表示与第1个待融合中间表示进行融合,此时可以理解为算子1和算子6被融合为了一个算子,该融合后的算子同时具备算子6包含的算法模块以及算子1包含的算法模块;并将第6个待融合中间表示与第1个待融合中间表示进行融合,此时可以理解为算子7和算子3-5被融合为了一个算子,该融合后的算子同时具备算子3-5包含的算法模块以及算子7包含的算法模块。
可选地,在一个实施例中,当进行算子融合之后,若还剩余有拆分算子,如存在有拆分算子均不具备与直接前置算子和后置前置算子进行融合的条件时,则将该剩余的拆分算子进行二次融合(再融合),即将调整中间表示进行二次融合,得到一个目标中间表示,该二次融合后的目标中间表示可能具有融合特性也可能不具有融合特性,且该二次融合后得到的算子无法与上下连接的算子融合。
例如,如图9b,若拆分算子(1.1-1.5)对应的待融合中间表示均无法与上下连接的算子对应的待融合中间表示进行融合时,则将该拆分算子(1.1-1.5)对应的待融合中间表示进行二次融合,以得到一个目标中间表示,此时则表示将拆分算子还原为原始算子;或者,也可以是,若在融合后,剩余拆分算子数量大于1时,则确定该剩余拆分算子对应的调整中间表示是否可以融合,若可以融合,则将剩余拆分算子对应的调整中间表示进行二次融合,得到一个目标中间表示。又如,如图9b,若拆分算子1.1与直接前置算子融合,拆分算子1.5与直接后置算子融合,设剩余拆分算子(1.2-1.4)对应的待融合中间表示均无法再与上下连接的算子对应的待融合中间表示进行融合时,则可以将该剩余拆分算子(1.2-1.4)对应的待融合中间表示进行二次融合,以得到一个目标中间表示,此时则表示将拆分算子还原为原始算子中的一部分。
在一个可能的实施方式中,电子设备根据至少一个目标中间表示确定调整后的目标模型具体可以是,电子设备分别将每个目标中间表示进行算子还原,得到每个目标中间表示对应的还原算子,根据每个目标中间表示分别对应的还原算子确定调整后的目标模型。其中,将每个目标中间表示进行算子还原可以是利用自动调优技术对每个目标中间表示进行自动调优,编译得到每个目标中间表示所对应的算子代码,该每个目标中间表示所对应的算子代码为表示每个目标中间表示对应的还原算子的代码,根据每个目标中间表示分别对应的还原算子确定调整后的目标模型即为根据每个中间表示算子所对应的算子代码确定表示调整后的目标模型的目标代码。通过该目标代码所确定的调整后的目标模型的模型性能优于目标模型的模型性能,以及通过该目标代码所确定的调整后的目标模型的模型结构可以与目标模型的模型结构不同,由此实现模型的编译优化。可选地,使用的自动调优技术可以是Ansor(一个用于深度学习应用的张量化程序生成框架)技术,也可以是AutoTVM(即TVM的auto-tuning,一种基于TVM的自动调优框架)技术、多面体模型等技术。
可选地,在一个可能的实施方式中,本申请技术方案可以应用于地理场景(又称地图场景)匹配系统中,地理场景匹配为地图数据结构化(即为基于历史图像(如路网图像)进行对当前图像的地图要素提取(如特征提取)及结构化存储(如确定场景相似度以及匹配的地理场景并存储)的过程)的核心流程之一,可以实现判断当前图像(待匹配场景图像)和历史图像(参考场景图像)之间的场景相似度,通常情况下该地理场景匹配在该系统中占40%左右的运行时间,因此若通过本申请技术方案所提出的模型数据处理方法实现模型的编译优化,可以极大地提升场景匹配模型的性能,使得降低在场景匹配阶段的时延,进而提升整个地理匹配系统的运行效率,降低系统部署成本,以及在模型进行编译优化时,可以实现自动生成编译优化后的模型,而无需人工优化过程,加快了模型算法迭代、开发以及部署的周期。
因此上述目标模型可以是用于对图像中的地理场景进行匹配的模型,在得到调整后的目标模型并部署到地理场景系统之后,电子设备可以获取待匹配场景图像,并从地理场景系统中获取多个参考场景图像,根据调整后的目标模型生成待匹配场景图像分别与每个参考场景图像之间的场景相似度,该场景相似度用于表示待匹配场景图像所包含的地理场景与参考场景图像所包含的地理场景之间的相似度,将与待匹配场景图像之间的场景相似度最大的参考场景图像确定为场景匹配图像,将场景匹配图像所包含的地理场景确定为待匹配场景图像所包含的地理场景。
在一些实施例中,电子设备根据调整后的目标模型生成待匹配场景图像分别与多个参考场景图像中每个参考场景图像之间的场景相似度具体可以是,对待匹配场景图像进行特征提取,得到待匹配场景图像的第一图像特征数据,该第一图像特征数据包括待匹配场景图像中多个特征点以及各个特征点对应的特征信息,分别对每个参考场景图像进行特征提取处理,得到每个参考场景图像的第二图像特征数据,该第二图像特征数据包括参考场景图像中多个特征点以及各个特征点对应的特征信息,调用调整后的目标模型根据第一图像特征数据和每个参考场景图像的第二图像特征数据,识别待匹配场景图像分别与每个参考场景图像之间的场景相似度。
可选地,在一个可能的实施方式中,电子设备还可以将调整后的目标模型部署到推理引擎中(如TNN(一种深度学习推理框架)),即可以实现将编译优化得到的调整后的目标模型对应的目标代码快速集成到推理引擎中,在使用调整后的目标模型时,可以通过推理引擎提供的模型接口调用该模型,实现模型的快速部署使用。
例如,请参见图10a-图10d,图10a-图10d为本申请实施例提供的一种基于目标编译器对目标模型进行编译优化的场景示意图;其中分为编译优化阶段和运行阶段两部分,编译优化阶段包括(1)-(4),运行阶段包括(5),具体包括:
(1)获取模型中各个算子对应的中间表示:
(a)设目标模型为场景匹配模型(如superglue(一种基于图卷积神经网络的特征匹配算法)模型),该目标模型基于TNN推理引擎的格式存储,将以该格式存储的目标模型进行解析,得到多个算子以及该多个算子构成的模型结构,设部分模型结构以及包含的每个算子的名称如图10a所示,每个算子的名称标识对应的算子,对应相同算法模块的算子的名称一致;图10a中所示的各个算子依次通过Relay IR进行对应算法的分析,得到对应的中间表示。以及每个算子的输入被解析为Relay IR中的变量(设定义为Var类型(隐式类型,一种计算机术语)),以及各个算子(如该图10a中的算子1的名称为Convolution1D、算子2的名称为Convolution1D、算子3的名称为Reshape、算子4的名称为Reshape、算子5的名称为Einsum、算子6的名称为Mul、算子7的名称为SoftmaxCaffe、算子8的名称为Convolution1D、算子11的名称为Reshape、算子10的名称为Einsum、算子11的名称为Reshape等)被解析为Relay IR中的算子原语(operator,Op,即一个算子利用Relay IR表示为中间表示之后,可以将该中间表示称为一个Op,一个Op对应一个算子),即电子设备基于目标编译器(设为TVM编译器)解析目标模型的模型结构,得到多个算子,并基于Relay IR构建目标模型中各个算子对应的中间表示(IR表示);
(b)此外,各个算子(如图10a未完全示出)与对应的Relay IR中的算子原语(即对应的中间表示)的转换关系可以如下表1所示,其中左边列表示算子的名称(该名称表征了算子包含的算法模块),右边列为将算子包含的算法模块转换为Relay IR中的算子原语的结果(以第一行为例,nn.convld表示Convolution1D所表征的算法模块对应的转换结果,以及括号中的数据表示该算子的输入数据(输入数据1:%data和输入数据2:%weight)):
Convolution1D | nn.conv1d(%data, %weight) |
Convolution1D(with bias) | nn.bias_add(nn.conv1d(%data, %weight), %bias, axis) |
ReLU | nn.relu(%data) |
Softmax | nn.softmax(%data, axis) |
BatchNorm | nn.batch_norm(%data, %gamma, %beta, %mean, %var, axis) |
Reshape | reshape(%data, new_shape) |
Concat | concatenate(%tuple_input, axis) |
Gather | take(%data, %indices, axis, ‘wrap’) |
Unsqueeze | expand_dims(%data, axis, 1) |
Sum | sum(%data1, %data2) |
Sub | subtract(%data1, %data2) |
Mul | multiply(%data1, %data2) |
表1
(2)基于中间表示的算子融合:
(a)Relay IR中的Op对于TVM编译器来说,可以具有6种类型(包括Element-wise(表示张量按元素处理)、Broadcast(表示张量维度扩展)、Injective(表示张量映射)、Reduction(表示张量维度压缩)、Out-Element-wise-Fusable(表示将张量按元素映射融合到输出, 如二维卷积)、Opaque(表示无法融合)),该Op的类型与对应的算法类型有关,该Op的类型与对应的算法类型之间的对应关系根据目标编译器的指示确定,不同的编译器对应关系可以不同;如对应关系可以是Element-wise类型的Op和Broadcast类型的Op能被Injective类型的Op融合,即Injective类型的类型等级(融合等级)高于Element-wise类型的类型等级以及高于Broadcast类型的类型等级;以及Element-wise类型的Op能被Out-Element-wise-Fusable类型的Op融合,即Out-Element-wise-Fusable类型的类型等级(融合等级)高于Element-wise类型的类型等级;如若算子A对应的中间表示(Op)为Element-wise类型,若算子B对应的中间表示(Op)为Injective类型,且该算子A与算子B存在连接关系时,算子A能够被算子B融合,融合后的算子对应的中间表示的类型为Injective类型;以及Opaque类型的Op无法与其他任何类型的Op融合,即表示不存在融合特性的中间表示;其中,可以理解的是,Opaque类型的Op包含对应算法类型中存在互斥编译算法对的中间表示,即该类型的Op还可以包含其他情况的中间表示(例如表征对输入数据进行分类或排序的中间表示),本申请实施例所提及的对中间表示进行调整即针对对应算法类型中存在互斥编译算法对的中间表示;
(b)设如图10a中的算子5和算子10(Einsum)对应的中间表示为Opaque类型的Op,为了能够使得TVM编译可以对算子融合得更彻底,可以对前述算子对应的中间表示进行调整,对前述算子对应的中间表示进行调整如图10b所示;其中,前述算子对应的中间表示在调整后得到的调整中间表示可以包括为reshape(表示将输入张量映射为矩阵)、transpose(表示对输入矩阵进行置换)等Injective Op类型的调整中间表示,以及包括为multiply(表示张量按元素相乘)、sum(表示张量按元素相加)等Element-wise Op类型的调整中间表示;该调整之后,通过得到的多个调整中间表示实现了对算子的拆分,使拆分后得到的算子均有融合特性,从而可以更好地与前后连接的算子进行融合;因此在调整待调整中间表示以对算子进行拆分之后,此时多个算子之间算法结构可以如图10c所示;
(c)在对待调整中间表示进行调整得到调整中间表示之后,利用TVM编译器并根据多个算子之间的算法结构对未调整的中间表示和调整中间表示进行融合,得到至少一个目标中间表示;前述中间表示在融合时,则实现了算子的融合;其中,设算子16、17、6、7对应的待融合中间表示进行了相互融合,即该算子16、17、6、7实现了融合,以及算子22、23、11对应的待融合中间表示进行了相互融合,即该算子22、23、11实现了融合,因此最终得到调整后的场景匹配模型的模型结构可以如图10d所示;
(3)基于中间表示的算子调优:
(a)电子设备调用TVM编译器提供的Ansor自动调优接口,以对基于场景匹配模型得到的至少一个目标中间表示使用Ansor自动调优技术进行自动调优,从而实现对算子的底层调优,若多个算子之间的算法结构作为一个计算任务图,则一个目标中间表示可以表示一个计算任务子图;可以通过Ansor自动调优技术将各个目标中间表示作为输入,并通过任务调度器在每轮迭代的时候对一个目标中间表示所表示的计算任务子图进行自动调优,在预设时间段内(如10小时的自动调优)通过多轮迭代以使得所有的目标中间表示进行了自动调优;
(b)以一轮为例,其具体可以是,通过Ansor自动调优技术并利用多个预设的优化手段(又称优化模板)将一个目标中间表示所表示的计算任务子图转换为多个张量化程序,基于该多个优化手段使用遗传算法生成每个张量化程序对应的优化后的程序代码,以及该多个优化后的程序代码将发送给测试设备通过性能模型(如XGBoot(eXtreme GradientBoosting,极端梯度提升)性能模型)进行运行和测试,以预测该多个优化后的程序代码的推理效果,得到针对不同优化手段的预测结果,可以使用预测结果对性能模型进行更新以使得性能模型的预测结果更准确,并将该预测结果作为每轮迭代优化的日志文件;该Ansor自动调优技术是一个完全自动的调优过程,可以实现对模型算子底层计算核心的离线优化,无需开发人员进行任何手动优化指导,就能够确定出高性能的算子;
(4)调整后的目标模型的目标代码生成:
电子设备可以利用TVM编译器的后端进行代码的生成,即具体可以是,通过该TVM编译器读取Ansor自动调优过程中产生的日志文件,确定每个目标中间表示对应的最佳优化手段,并利用该最佳优化手段分别生成每个目标中间表示对应的优化后的张量化程序,然后利用TVM编译器的后端对每个目标中间表示对应的优化后的张量化程序进行编译以生成每个目标中间表示对应的目标程序代码,并根据每个目标中间表示对应的目标程序代码得到调整后的目标模型的目标代码;若电子设备的型号为x86 CPU(central processingunit,中央处理器),则可以先通过TVM编译器将每个优化后的张量化程序翻译为LLVM IR,然而使用LLVM编译器基于翻译结果编译生成对应的目标程序;或者,若电子设备的型号为Nvidia GPU(graphics processing unit,图形处理器),则可以先通过TVM编译器将每个优化后的张量化程序翻译为CUDA C代码(一种基于计算统一设备体系结构(CUDA,ComputeUnified Device Architecture)的编程语言),在利用NVCC编译器(一种CUDA开发环境下的C语言编译器)基于翻译结果编译生成对应的目标程序;
(5)基于调整后的目标模型的推理引擎集成:
电子设备可以通过集成TVM编译器运行时的动态库的方法将得到的目标代码集成至推理引擎,即TVM编译器在运行时动态度提供了用于运行TVM编译器生成的目标代码的接口,因此可以在TNN推理引擎中使用该接口来运行生成的目标代码,以实现调整后的场景匹配模型的集成;以及此时对于TNN推理引擎的使用者来说,该接口是透明的,使用者只需要在TNN推理引擎中增加用于调用该接口的代码,就可以实现使用编译优化后的模型,实现了模型的灵活使用编译优化技术以及快速部署集成;
(6)因此,基于上述描述,可以参见图11,图11为本申请实施例提供的一种基于场景匹配模型的数据处理框架示意图;其中,基于该数据处理框架所指示的针对场景匹配模型的编译优化流程如下:S1、基于目标编译器将包含神经网络的场景匹配模型(源代码)中的各个算子分别转换为中间表示;S2、基于目标编译器对各个算子分别对应的中间表示中的不可融合的待调整的中间表示进行调整,得到调整中间表示,基于未调整的中间表示和调整中间表示得到多个待融合中间表示,对该多个待融合中间表示进行融合得到至少一个目标中间表示以实现算子融合,利用Ansor自动调优技术对至少一个目标中间表示进行调优确定每个目标中间表示对应的优化手段;S3、基于每个目标中间表示对应的优化手段编译生成目标代码,该目标代码表征调整后的场景匹配模型;S4、使用TNN推理引擎导入编译优化后得到的调整后的场景匹配模型;S5、通过TNN推理模型调用该调整后的场景匹配模型以执行针对场景匹配的前向推理,得到场景匹配结果(待匹配场景图像和参考场景图像之间的场景相似度);上述S1-S3对应编译优化阶段,S4-S5对应运行阶段。
可以理解的是,通过调整中间表示以实现将算子进行拆分,可以细化原有算子具有的粒度和边界,从而可以使得算子能够更好地进行融合,从而提高内存复用和降低访存开销,从而提升模型推理速度,提高模型执行效率。其中,调用TVM编译器提供的自动调优接口,以利用XGBoost性能模型对目标模型进行了10小时的自动调优,累计进行了15000次测试设备上的性能测试而得到调整后的目标模型,并通过对该调整后的目标模型的测试结果得知,可以有效地提升模型的推理性能,以及通过该编译优化后的模型集成至推理引擎可以实现模型的部署便捷和模型的输入数据的维度动态变化,以及在将算子拆分后进行算子融合可以使得算子融合率更高,提高编译优化的效率;以及基于该测试结果指示,在型号为Nvidia Tesla T4 GPU(一种适用于高性能计算的图像处理器)的电子设备上,利用本申请技术方案所进行算子融合后,可以使得模型的推理性能提升4倍,并在经过10小时的自动调优后,可使得模型的推理性能进一步提升至28倍,从而可以实现在大幅度提升应用模型性能和提升模型的算法迭代、开发和部署的效率。
本申请实施例中电子设备可以获取目标模型的多个算子分别对应的中间表示,从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示,根据待调整中间表示对应的算法类型对待调整中间表示中的N个表示文件进行归组,得到多个文件分组,根据多个文件分组确定可融合的调整中间表示,将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示,根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。通过上述方法,可以确定出不具备融合特性的待调整中间表示,并在调整后得到具有融合特性的调整中间表示,从而在进行融合时可以使得更多的算子能够融合,提高算子融合率,进而可以提高内存复用率,以及提高编译优化后的模型效果和模型性能。
请参加图12,图12为本申请实施例提供的一种图像处理方法的流程示意图,该方法可以由上述提及的电子设备执行。如图12所示,本申请实施例中图像处理方法的流程可以包括如下:
S1201、获取待处理图像。
其中,该待处理图像可以是需要进行处理的任意格式的图像,具体的待处理图像与所应用到的场景有关。如应用于图像识别场景(如人脸识别场景、车辆识别场景等)中,该待处理图像可以是包括要识别的对象的图像;如应用于图像风格转换场景(如现实人物画面转换为卡通人物画面等)中,该待处理图像可以是包括真实人物的图像。
S1202、调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果。
其中,该调整后的目标模型是采用上述实施例所描述的技术方案对目标模型进行调整得到。该目标模型可以是任意用于进行图像处理的模型。该目标模型(包括模型结构和模型中的参数等)可以根据功能和应用场景的不同而有所不同。
在一些实施例中,目标模型可以用于对图像中的对象进行识别,该对象可以为人脸、动物、车辆等等;电子设备调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果具体可以是:调用该调整后的目标模型对待处理图像中的对象进行识别,生成在待处理图像中所识别到的对象所在的对象检测框,并将该对象检测框确定为待处理图像的图像处理结果。后续可以利用该对象检测框将识别的对象进行提取(截取)或局部增强等等。
在一些实施例中,目标模型可以用于对图像进行增强,该图像增强可以是对图像进行色彩增强或除去噪声以使图像边缘清晰等等;电子设备调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果具体可以是:调用该调整后的目标模型对待处理图像进行图像画面增强处理,得到待处理图像的画面增强图像,将画面增强图像确定为待处理图像的图像处理结果。
本申请实施例中,电子设备可以获取待处理图像,调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果。通过上述方法,可以通过具有更好模型效果的调整后的目标模型进行图像处理,以使得到的图像处理结果更精准。
请参见图13,图13为本申请提供的一种模型数据处理装置的结构示意图。需要说明的是,图13所示的模型数据处理装置,用于执行本申请图2和图7所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示,经参照本申请图2和图7所示的实施例。该模型数据处理装置1300可包括:获取模块1301、确定模块1302、处理模块1303。其中:
获取模块1301,用于获取目标模型的多个算子分别对应的中间表示;任一个中间表示包含对对应算子进行分解得到的表示文件;
确定模块1302,用于从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示;
处理模块1303,用于对待调整中间表示进行调整,得到可融合的调整中间表示;
确定模块1302,还用于将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示;
处理模块1303,还用于根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。
在一个可能的实施方式中,上述目标模型基于目标编译器进行编译;该多个算子分别对应的中间表示包含第i个中间表示,i为小于或等于多个算子的总数量的正整数;该第i个中间表示包含对对应算子进行分解所得到的N个表示文件,N为正整数,一个表示文件对应一种算法类型;
确定模块1302在用于从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示时,具体用于:
获取目标编译器所指示的M个互斥编译算法对;一个互斥编译算法对包含在目标编译器中处于互斥的两种算法类型,M为正整数;
若N个表示文件分别对应的算法类型中包含M个互斥编译算法对的至少一个互斥编译算法对,则将第i个中间表示确定为不可融合的待调整中间表示。
在一个可能的实施方式中,该N个表示文件分别对应的算法类型中包含M个互斥编译算法对中的目标互斥编译算法对,该目标互斥编译算法对包含第一算法类型和第二算法类型;
处理模块1303在用于对待调整中间表示进行调整,得到可融合的调整中间表示时,具体用于:
根据第一算法类型和第二算法类型对第i个中间表示的N个表示文件进行归组,得到包含第一算法类型对应的表示文件的第一文件分组及包含第二算法类型对应的表示文件的第二文件分组;
根据第一文件分组和第二文件分组确定调整中间表示。
在一个可能的实施方式中,该多个待融合中间表示包含第j个待融合中间表示,j为小于或等于多个待融合中间表示的总数量的正整数;
处理模块1303在用于根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示时,具体用于:
根据每个待融合中间表示所包含的表示文件对应的算法类型确定每个待融合中间表示的中间表示类型;
根据算法结构及每个待融合中间表示的中间表示类型,在多个待融合中间表示中确定第j个待融合中间表示的关联中间表示;
对第j个待融合中间表示及关联中间表示进行融合,得到至少一个目标中间表示。
在一个可能的实施方式中,处理模块1303在用于根据至少一个目标中间表示确定调整后的目标模型时,具体用于:
分别将每个目标中间表示进行算子还原,得到每个目标中间表示对应的还原算子;
根据每个目标中间表示分别对应的还原算子确定调整后的目标模型。
在一个可能的实施方式中,上述目标模型用于对图像中的地理场景进行匹配;处理模块1303还用于:
获取待匹配场景图像,并获取多个参考场景图像;
根据调整后的目标模型生成待匹配场景图像分别与每个参考场景图像之间的场景相似度;该场景相似度用于表示待匹配场景图像所包含的地理场景与参考场景图像所包含的地理场景之间的相似度;
将与待匹配场景图像之间的场景相似度最大的参考场景图像确定为场景匹配图像;
将场景匹配图像所包含的地理场景确定为待匹配场景图像所包含的地理场景。
在一个可能的实施方式中,处理模块1303在用于根据调整后的目标模型生成待匹配场景图像分别与多个参考场景图像中每个参考场景图像之间的场景相似度时,具体用于:
对待匹配场景图像进行特征提取,得到待匹配场景图像的第一图像特征数据;
分别对每个参考场景图像进行特征提取处理,得到每个参考场景图像的第二图像特征数据;
调用调整后的目标模型根据第一图像特征数据和每个参考场景图像的第二图像特征数据,识别待匹配场景图像分别与每个参考场景图像之间的场景相似度。
本申请实施例中,获取模块获取目标模型的多个算子分别对应的中间表示;确定模块从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示;处理模块对待调整中间表示进行调整,得到可融合的调整中间表示;确定模块将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示;处理模块根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。通过实施上述装置,可以确定出不具备融合特性的待调整中间表示,并在调整后得到具有融合特性的调整中间表示,从而在进行融合时可以使得更多的算子能够融合,提高算子融合率,进而可以提高内存复用率,以及提高编译优化后的模型效果和模型性能。
请参见图14,图14为本申请提供的一种图像处理装置的结构示意图。需要说明的是,图14所示的图像处理装置,用于执行本申请图12所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示,经参照本申请图12所示的实施例。该图像处理装置1400可包括:获取模块1401、调用模块1402。其中:
获取模块1401,用于获取待处理图像;
调用模块1402,用于调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果;
其中,该调整后的目标模型是采用上述实施例所描述的技术方案对目标模型进行调整得到。
在一个可能的实施方式中,上述目标模型用于对图像中的对象进行识别;
调用模块1402在用于调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果时,具体用于:
调用调整后的目标模型对待处理图像中的对象进行识别,生成在待处理图像中所识别到的对象所在的对象检测框;
将对象检测框确定为待处理图像的图像处理结果。
在一个可能的实施方式中,上述目标模型用于对图像进行增强;
调用模块1402在用于调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果时,具体用于:
调用调整后的目标模型对待处理图像进行图像画面增强处理,得到待处理图像的画面增强图像;
将画面增强图像确定为待处理图像的图像处理结果。
本申请实施例中,获取模块获取待处理图像;调用模块调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果。通过实施上述装置,可以通过具有更好模型效果的调整后的目标模型进行图像处理,以使得到的图像处理结果更精准。
请参见图15,图15为本申请实施例提供的一种电子设备的结构示意图。如图15所示,该电子设备1500包括:至少一个处理器1501、存储器1502。可选的,该电子设备还可包括网络接口。其中,处理器1501、存储器1502以及网络接口之间可以交互数据,网络接口受处理器1501的控制用于收发消息,存储器1502用于存储计算机程序,该计算机程序包括程序指令,处理器1501用于执行存储器1502存储的程序指令。其中,处理器1501被配置用于调用该程序指令执行上述方法。
其中,存储器1502可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1502也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储器1502还可以包括上述种类的存储器的组合。
其中,处理器1501可以是中央处理器(central processing unit,CPU)。在一个实施例中,处理器1501还可以是图形处理器(Graphics Processing Unit,GPU)。处理器1501也可以是由CPU和GPU的组合。
在一个可能的实施方式中,存储器1502用于存储程序指令,处理器1501可以调用该程序指令,执行以下步骤:
获取目标模型的多个算子分别对应的中间表示;任一个中间表示包含对对应算子进行分解得到的表示文件;
从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示;
对待调整中间表示进行调整,得到可融合的调整中间表示;
将多个算子分别对应的中间表示中除待调整中间表示之外的中间表示及调整中间表示确定为多个待融合中间表示;
根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据至少一个目标中间表示确定调整后的目标模型。
在一个可能的实施方式中,上述目标模型基于目标编译器进行编译;该多个算子分别对应的中间表示包含第i个中间表示,i为小于或等于多个算子的总数量的正整数;该第i个中间表示包含对对应算子进行分解所得到的N个表示文件,N为正整数,一个表示文件对应一种算法类型;
处理器1501在用于从多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示时,具体用于:
获取目标编译器所指示的M个互斥编译算法对;一个互斥编译算法对包含在目标编译器中处于互斥的两种算法类型,M为正整数;
若N个表示文件分别对应的算法类型中包含M个互斥编译算法对的至少一个互斥编译算法对,则将第i个中间表示确定为不可融合的待调整中间表示。
在一个可能的实施方式中,该N个表示文件分别对应的算法类型中包含M个互斥编译算法对中的目标互斥编译算法对,该目标互斥编译算法对包含第一算法类型和第二算法类型;
处理器1501在用于对待调整中间表示进行调整,得到可融合的调整中间表示时,具体用于:
根据第一算法类型和第二算法类型对第i个中间表示的N个表示文件进行归组,得到包含第一算法类型对应的表示文件的第一文件分组及包含第二算法类型对应的表示文件的第二文件分组;
根据第一文件分组和第二文件分组确定调整中间表示。
在一个可能的实施方式中,该多个待融合中间表示包含第j个待融合中间表示,j为小于或等于多个待融合中间表示的总数量的正整数;
处理器1501在用于根据多个算子之间的算法结构对多个待融合中间表示进行融合,得到至少一个目标中间表示时,具体用于:
根据每个待融合中间表示所包含的表示文件对应的算法类型确定每个待融合中间表示的中间表示类型;
根据算法结构及每个待融合中间表示的中间表示类型,在多个待融合中间表示中确定第j个待融合中间表示的关联中间表示;
对第j个待融合中间表示及关联中间表示进行融合,得到至少一个目标中间表示。
在一个可能的实施方式中,处理器1501在用于根据至少一个目标中间表示确定调整后的目标模型时,具体用于:
分别将每个目标中间表示进行算子还原,得到每个目标中间表示对应的还原算子;
根据每个目标中间表示分别对应的还原算子确定调整后的目标模型。
在一个可能的实施方式中,上述目标模型用于对图像中的地理场景进行匹配;处理器1501还用于:
获取待匹配场景图像,并获取多个参考场景图像;
根据调整后的目标模型生成待匹配场景图像分别与每个参考场景图像之间的场景相似度;该场景相似度用于表示待匹配场景图像所包含的地理场景与参考场景图像所包含的地理场景之间的相似度;
将与待匹配场景图像之间的场景相似度最大的参考场景图像确定为场景匹配图像;
将场景匹配图像所包含的地理场景确定为待匹配场景图像所包含的地理场景。
在一个可能的实施方式中,处理器1501在用于根据调整后的目标模型生成待匹配场景图像分别与多个参考场景图像中每个参考场景图像之间的场景相似度时,具体用于:
对待匹配场景图像进行特征提取,得到待匹配场景图像的第一图像特征数据;
分别对每个参考场景图像进行特征提取处理,得到每个参考场景图像的第二图像特征数据;
调用调整后的目标模型根据第一图像特征数据和每个参考场景图像的第二图像特征数据,识别待匹配场景图像分别与每个参考场景图像之间的场景相似度。
在一个可能的实施方式中,存储器1502用于存储程序指令,处理器1501可以调用该程序指令,执行以下步骤:
获取待处理图像;
调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果;
其中,该调整后的目标模型是采用上述所示实施例所描述的技术方案对目标模型进行调整得到。
在一个可能的实施方式中,上述目标模型用于对图像中的对象进行识别;
处理器1501在用于调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果时,具体用于:
调用调整后的目标模型对待处理图像中的对象进行识别,生成在待处理图像中所识别到的对象所在的对象检测框;
将对象检测框确定为待处理图像的图像处理结果。
在一个可能的实施方式中,上述目标模型用于对图像进行增强;
处理器1501在用于调用调整后的目标模型对待处理图像进行图像处理,得到待处理图像的图像处理结果时,具体用于:
调用调整后的目标模型对待处理图像进行图像画面增强处理,得到待处理图像的画面增强图像;
将画面增强图像确定为待处理图像的图像处理结果。
具体实现中,上述所描述的装置、处理器1501、存储器1502等可执行上述方法实施例所描述的实现方式,也可执行本申请实施例所描述的实现方式,在此不再赘述。
本申请实施例中还提供一种计算机(可读)存储介质,该计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令被处理器执行时,使处理器可执行上述方法实施例中所执行的部分或全部步骤。可选的,该计算机存储介质可以是易失性的,也可以是非易失性的。计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,前述的程序可存储于计算机存储介质中,该计算机存储介质可以为计算机可读存储介质,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。
Claims (14)
1.一种模型数据处理方法,其特征在于,所述方法包括:
获取目标模型的多个算子分别对应的中间表示;任一个中间表示包含对对应算子进行分解得到的表示文件;
从所述多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示;
对所述待调整中间表示进行调整,得到可融合的调整中间表示;
将所述多个算子分别对应的中间表示中除所述待调整中间表示之外的中间表示及所述调整中间表示确定为多个待融合中间表示;
根据所述多个算子之间的算法结构对所述多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据所述至少一个目标中间表示确定调整后的目标模型。
2.根据权利要求1所述的方法,其特征在于,所述目标模型基于目标编译器进行编译;所述多个算子分别对应的中间表示包含第i个中间表示,i为小于或等于所述多个算子的总数量的正整数;所述第i个中间表示包含对对应算子进行分解所得到的N个表示文件,N为正整数,一个表示文件对应一种算法类型;
所述从所述多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示,包括:
获取所述目标编译器所指示的M个互斥编译算法对;一个互斥编译算法对包含在所述目标编译器中处于互斥的两种算法类型,M为正整数;
若所述N个表示文件分别对应的算法类型中包含所述M个互斥编译算法对的至少一个互斥编译算法对,则将所述第i个中间表示确定为不可融合的所述待调整中间表示。
3.根据权利要求2所述的方法,其特征在于,所述N个表示文件分别对应的算法类型中包含所述M个互斥编译算法对中的目标互斥编译算法对,所述目标互斥编译算法对包含第一算法类型和第二算法类型;
所述对所述待调整中间表示进行调整,得到可融合的调整中间表示,包括:
根据所述第一算法类型和所述第二算法类型对所述第i个中间表示的所述N个表示文件进行归组,得到包含所述第一算法类型对应的表示文件的第一文件分组及包含所述第二算法类型对应的表示文件的第二文件分组;
根据所述第一文件分组和所述第二文件分组确定所述调整中间表示。
4.根据权利要求1所述的方法,其特征在于,所述多个待融合中间表示包含第j个待融合中间表示,j为小于或等于所述多个待融合中间表示的总数量的正整数;
所述根据所述多个算子之间的算法结构对所述多个待融合中间表示进行融合,得到至少一个目标中间表示,包括:
根据每个待融合中间表示所包含的表示文件对应的算法类型确定所述每个待融合中间表示的中间表示类型;
根据所述算法结构及所述每个待融合中间表示的中间表示类型,在所述多个待融合中间表示中确定所述第j个待融合中间表示的关联中间表示;
对所述第j个待融合中间表示及所述关联中间表示进行融合,得到所述至少一个目标中间表示。
5.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个目标中间表示确定调整后的目标模型,包括:
分别将每个目标中间表示进行算子还原,得到所述每个目标中间表示对应的还原算子;
根据所述每个目标中间表示分别对应的还原算子确定所述调整后的目标模型。
6.根据权利要求1所述的方法,其特征在于,所述目标模型用于对图像中的地理场景进行匹配;所述方法还包括:
获取待匹配场景图像,并获取多个参考场景图像;
根据调整后的目标模型生成所述待匹配场景图像分别与每个参考场景图像之间的场景相似度;该场景相似度用于表示所述待匹配场景图像所包含的地理场景与参考场景图像所包含的地理场景之间的相似度;
将与所述待匹配场景图像之间的场景相似度最大的参考场景图像确定为场景匹配图像;
将所述场景匹配图像所包含的地理场景确定为所述待匹配场景图像所包含的地理场景。
7.根据权利要求6所述的方法,其特征在于,所述根据调整后的目标模型生成所述待匹配场景图像分别与所述多个参考场景图像中每个参考场景图像之间的场景相似度,包括:
对所述待匹配场景图像进行特征提取,得到所述待匹配场景图像的第一图像特征数据;
分别对所述每个参考场景图像进行特征提取处理,得到所述每个参考场景图像的第二图像特征数据;
调用调整后的所述目标模型根据所述第一图像特征数据和所述每个参考场景图像的第二图像特征数据,识别所述待匹配场景图像分别与所述每个参考场景图像之间的场景相似度。
8.一种图像处理方法,其特征在于,所述方法包括:
获取待处理图像;
调用调整后的目标模型对所述待处理图像进行图像处理,得到所述待处理图像的图像处理结果;
其中,所述调整后的目标模型是采用上述权利要求1-5任一项所述的方法对目标模型进行调整得到。
9.根据权利要求8所述的方法,其特征在于,所述目标模型用于对图像中的对象进行识别;
所述调用调整后的目标模型对所述待处理图像进行图像处理,得到所述待处理图像的图像处理结果,包括:
调用所述调整后的目标模型对所述待处理图像中的对象进行识别,生成在所述待处理图像中所识别到的对象所在的对象检测框;
将所述对象检测框确定为所述待处理图像的所述图像处理结果。
10.根据权利要求8所述的方法,其特征在于,所述目标模型用于对图像进行增强;
所述调用调整后的目标模型对所述待处理图像进行图像处理,得到所述待处理图像的图像处理结果,包括:
调用所述调整后的目标模型对所述待处理图像进行图像画面增强处理,得到所述待处理图像的画面增强图像;
将所述画面增强图像确定为所述待处理图像的所述图像处理结果。
11.一种模型数据处理装置,其特征在于,所述装置包括:
获取模块,用于获取目标模型的多个算子分别对应的中间表示;任一个中间表示包含对对应算子进行分解得到的表示文件;
确定模块,用于从所述多个算子分别对应的中间表示中确定不可融合的中间表示,作为待调整中间表示;
处理模块,用于对所述待调整中间表示进行调整,得到可融合的调整中间表示;
所述确定模块,还用于将所述多个算子分别对应的中间表示中除所述待调整中间表示之外的中间表示及所述调整中间表示确定为多个待融合中间表示;
所述处理模块,还用于根据所述多个算子之间的算法结构对所述多个待融合中间表示进行融合,得到至少一个目标中间表示,并根据所述至少一个目标中间表示确定调整后的目标模型。
12.一种图像处理装置,其特征在于,所述装置包括:
获取模块,用于获取待处理图像;
调用模块,用于调用调整后的目标模型对所述待处理图像进行图像处理,得到所述待处理图像的图像处理结果;
其中,所述调整后的目标模型是采用上述权利要求1-5任一项所述的方法对目标模型进行调整得到。
13.一种电子设备,其特征在于,包括处理器和存储器,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-10任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210127026.7A CN114168154B (zh) | 2022-02-11 | 2022-02-11 | 模型数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210127026.7A CN114168154B (zh) | 2022-02-11 | 2022-02-11 | 模型数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168154A true CN114168154A (zh) | 2022-03-11 |
CN114168154B CN114168154B (zh) | 2022-05-17 |
Family
ID=80489719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210127026.7A Active CN114168154B (zh) | 2022-02-11 | 2022-02-11 | 模型数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168154B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995876A (zh) * | 2022-07-18 | 2022-09-02 | 浙江大华技术股份有限公司 | 算法方案的生成方法、设备及计算机可读存储介质 |
WO2024040844A1 (zh) * | 2022-08-24 | 2024-02-29 | 北京百度网讯科技有限公司 | 模型调试方法、装置、电子设备及存储介质 |
WO2024051377A1 (zh) * | 2022-09-07 | 2024-03-14 | 华为云计算技术有限公司 | 模型优化方法、装置以及计算设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10025827B1 (en) * | 2017-01-17 | 2018-07-17 | International Business Machines Corporation | Operator fusion management in a stream computing environment |
CN111338635A (zh) * | 2020-02-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 计算图的图编译方法、装置、设备及存储介质 |
CN111880807A (zh) * | 2020-07-31 | 2020-11-03 | Oppo广东移动通信有限公司 | 深度学习编译方法、装置、设备及存储介质 |
CN112819153A (zh) * | 2020-12-31 | 2021-05-18 | 杭州海康威视数字技术股份有限公司 | 一种模型转化方法及装置 |
CN113342345A (zh) * | 2021-05-17 | 2021-09-03 | 北京百度网讯科技有限公司 | 深度学习框架的算子融合方法、装置 |
CN113703741A (zh) * | 2021-10-29 | 2021-11-26 | 深圳思谋信息科技有限公司 | 神经网络编译器配置方法、装置、计算机设备和存储介质 |
CN113961267A (zh) * | 2021-10-15 | 2022-01-21 | 杭州海康威视数字技术股份有限公司 | 一种业务处理方法、装置及设备 |
-
2022
- 2022-02-11 CN CN202210127026.7A patent/CN114168154B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10025827B1 (en) * | 2017-01-17 | 2018-07-17 | International Business Machines Corporation | Operator fusion management in a stream computing environment |
CN111338635A (zh) * | 2020-02-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 计算图的图编译方法、装置、设备及存储介质 |
CN111880807A (zh) * | 2020-07-31 | 2020-11-03 | Oppo广东移动通信有限公司 | 深度学习编译方法、装置、设备及存储介质 |
CN112819153A (zh) * | 2020-12-31 | 2021-05-18 | 杭州海康威视数字技术股份有限公司 | 一种模型转化方法及装置 |
CN113342345A (zh) * | 2021-05-17 | 2021-09-03 | 北京百度网讯科技有限公司 | 深度学习框架的算子融合方法、装置 |
CN113961267A (zh) * | 2021-10-15 | 2022-01-21 | 杭州海康威视数字技术股份有限公司 | 一种业务处理方法、装置及设备 |
CN113703741A (zh) * | 2021-10-29 | 2021-11-26 | 深圳思谋信息科技有限公司 | 神经网络编译器配置方法、装置、计算机设备和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995876A (zh) * | 2022-07-18 | 2022-09-02 | 浙江大华技术股份有限公司 | 算法方案的生成方法、设备及计算机可读存储介质 |
WO2024040844A1 (zh) * | 2022-08-24 | 2024-02-29 | 北京百度网讯科技有限公司 | 模型调试方法、装置、电子设备及存储介质 |
WO2024051377A1 (zh) * | 2022-09-07 | 2024-03-14 | 华为云计算技术有限公司 | 模型优化方法、装置以及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114168154B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114168154B (zh) | 模型数据处理方法、装置、电子设备及存储介质 | |
US10157045B2 (en) | Systems and methods for automatically generating code for deep learning systems | |
US20230008597A1 (en) | Neural network model processing method and related device | |
CN112579063B (zh) | 一种用于深度学习编译器中探索优化空间的加速方法 | |
US11861462B2 (en) | Preparing structured data sets for machine learning | |
CN111611488B (zh) | 基于人工智能的信息推荐方法、装置、电子设备 | |
CN115617694B (zh) | 基于信息融合的软件缺陷预测方法、系统、设备及介质 | |
CN111104120A (zh) | 神经网络编译方法、系统及相应异构计算平台 | |
US20110276532A1 (en) | Automatic source code generation for computing probabilities of variables in belief networks | |
US20230334292A1 (en) | Node fusion method for computational graph and device | |
CN115034402A (zh) | 模型推理性能的优化方法、装置及相关产品 | |
CN111967271A (zh) | 分析结果的生成方法、装置、设备及可读存储介质 | |
CN115576699B (zh) | 数据处理方法、装置、ai芯片、电子设备及存储介质 | |
CN113379070A (zh) | 一种深度学习框架转换方法、系统、存储介质及设备 | |
CN116368494A (zh) | 一种神经网络编译优化方法和相关装置 | |
CN116089895A (zh) | 一种算子融合方法及装置 | |
CN110308909B (zh) | 针对神经网络处理器的可执行程序生成装置和方法 | |
CN114004335A (zh) | 一种数据处理的方法、装置、电子设备及存储介质 | |
CN115544029A (zh) | 一种数据处理方法及相关装置 | |
US20120123746A1 (en) | Exact parameter space reduction for numerically integrating parameterized differential equations | |
CN113705798A (zh) | 处理单元、计算装置及深度学习模型的计算图优化方法 | |
CN116560666A (zh) | 基于多层级代码生成的ai前端统一计算方法、装置及介质 | |
WO2022252694A1 (zh) | 神经网络优化方法及其装置 | |
CN115033212A (zh) | 航电系统图元模型一体化构建方法、装置、计算机设备 | |
CN114968325A (zh) | 代码注释的生成方法及装置、处理器和电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |