CN112905181B - 一种模型编译、运行方法及装置 - Google Patents
一种模型编译、运行方法及装置 Download PDFInfo
- Publication number
- CN112905181B CN112905181B CN201911226498.2A CN201911226498A CN112905181B CN 112905181 B CN112905181 B CN 112905181B CN 201911226498 A CN201911226498 A CN 201911226498A CN 112905181 B CN112905181 B CN 112905181B
- Authority
- CN
- China
- Prior art keywords
- model
- compiled
- parameters
- size
- input data
- 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.)
- Active
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种模型编译、运行方法及装置,涉及人工智能技术领域,方法包括:获得待编译模型的输入数据的多个尺寸;基于多个尺寸对待编译模型进行编译,获得待编译模型处理多个尺寸中每一尺寸的输入数据使用的模型参数和待编译模型处理每一尺寸的输入数据使用的计算指令;对各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数,并确定合并模型参数中各个参数与各个尺寸的对应关系;生成包含多个尺寸对应的计算指令、合并模型参数和对应关系的编译后模型。应用本申请实施例提供的方案对待编译模型进行编译,可以降低生成的编译后模型对存储资源和运行资源的需求。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种模型编译、运行方法及装置。
背景技术
随着人工智能技术的发展,各种网络模型在各个领域的应用越来越广泛。在具体应用中,使用的是上述各种网络模型编译后的模型,来实现各种网络模型对应的功能。
如果新的输入数据的尺寸和训练网络模型时的样本的尺寸不同,那么就需要针对网络模型进行编译,得到与新的输入数据的尺寸对应的网络模型的编译后的模型。
这样针对不同尺寸的输入数据的时候,就需要多次编译生成多个编译后的模型。由于上述网络模型一般包括多个网络层,每一层具有大量的模型参数,所以网络模型的每一编译后的模型占用的存储资源较多,多个编译后的模型占用的存储资源则更多。所以,应用上述现有技术提供的方式生成编译后的模型时,对存储资源的需求高。
发明内容
本申请实施例的目的在于提供一种模型编译、运行方法及装置,以降低生成的编译后模型对存储资源的需求。具体技术方案如下:
第一方面,本申请实施例提供了一种模型编译方法,所述方法包括:
获得待编译模型的输入数据的多个尺寸;
基于所述多个尺寸中每一尺寸对所述待编译模型进行编译,获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数和所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的计算指令;
对所述多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数,并确定所述合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系;
生成包含所述多个尺寸中每一尺寸对应的计算指令、所述合并模型参数和所述对应关系的编译后模型。
本申请的一个实施例中,所述对所述多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数,包括:
针对所述待编译模型的每一网络层,对所述多个尺寸中各个尺寸对应的层参数之间取值相同的层参数进行合并,得到合并模型参数,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
本申请的一个实施例中,所述获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,包括:
提取所述待编译模型内记录的、处理所述多个尺寸中每一尺寸的输入数据使用的模型参数;
对所提取的模型参数进行预处理,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,其中,所述预处理包括:按照预设的参数格式转换规则对所提取的模型参数进行格式转换,和/或按照预设的计算算法对所提取的模型参数进行预计算。
本申请的一个实施例中,所述对所提取的模型参数进行预处理,包括:
基于运行所述编译后模型的处理器的性能参数,对所提取的模型参数进行格式转换;和/或
基于所述待编译模型规定的计算算法,对所提取的模型参数进行预计算。
本申请的一个实施例中,在所述输入数据为图像数据的情况下,所述尺寸包括一次输入的输入数据中图像的数量、图像的颜色通道数量、图像的高度、图像的宽度中的至少一种。
本申请的一个实施例中,运行所述编译后模型的处理器包括:图像处理器GPU、x86处理器、微型处理器arm。
本申请的一个实施例中,所述方法还包括:
在获得新增输入数据的新的尺寸的情况下,基于所述新的尺寸对所述待编译模型进行编译,得到所述待编译模型处理所述新增输入数据使用的新计算指令和所述待编译模型处理所述新增输入数据使用的新模型参数;
对所述新模型参数和所述合并模型参数中取值相同的参数进行合并,得到新的合并模型参数;
将所述新模型参数与所述新的尺寸之间的对应关系添加到所述编译后模型包含的对应关系中,得到新的对应关系;
将所述新计算指令添加到所述编译后模型包含的计算指令中,并根据所述新的合并模型参数、所述新的对应关系更新所述编译后模型包含的合并模型参数、对应关系,得到新编译后模型。
第二方面,本申请实施例提供了一种模型运行方法,所述方法包括:
获得待处理输入数据的尺寸;
在对待编译模型进行编译得到的编译后模型中,确定所获得的尺寸对应的计算指令,其中,所述编译后模型包含:至少一尺寸对应的计算指令、合并模型参数和对应关系,每一尺寸对应的计算指令为:所述编译后模型处理该尺寸的输入数据使用的计算指令,所述合并模型参数为:对所述待编译模型处理所述至少一尺寸中每一尺寸的输入数据使用的模型参数之间取值相同的参数进行合并后的参数,所述对应关系为:合并模型参数中各个参数与所述至少一尺寸中各个尺寸的对应关系;
根据所述对应关系,从所述合并模型参数中确定所获得的尺寸对应的模型参数;
通过基于所确定模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
本申请的一个实施例中,所述根据所述对应关系,从所述合并模型参数中确定所获得的尺寸对应的模型参数,包括:
针对所述编译后模型的每一网络层,从所述合并模型参数中,获取所获得的尺寸对应的各个层参数,得到所获得的尺寸对应的模型参数,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
本申请的一个实施例中,所述通过基于所确定模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理,包括:
对所确定的模型参数进行预处理,其中,所述预处理包括:按照预设的参数格式转换规则对所确定的模型参数进行格式转换,和/或按照预设的计算算法对所确定的模型参数进行预计算;
通过基于预处理后模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
本申请的一个实施例中,所述方法还包括:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,生成表征输入数据尺寸错误的提示信息。
本申请的一个实施例中,所述方法还包括:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,记录所述待处理输入数据的尺寸,以使得对所述待编译模型重新编译时基于所记录的尺寸对所述编译后模型进行更新。
第三方面,本申请实施例提供了一种模型编译装置,所述装置包括:
第一尺寸获得模块,用于获得待编译模型的输入数据的多个尺寸;
模型编译模块,用于基于所述多个尺寸中每一尺寸对所述待编译模型进行编译,获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数和所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的计算指令;
参数合并模块,用于对所述多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数,并确定所述合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系;
模型生成模块,用于生成包含所述多个尺寸中每一尺寸对应的计算指令、所述合并模型参数和所述对应关系的编译后模型。
本申请的一个实施例中,所述参数合并模块,具体用于:
针对所述待编译模型的每一网络层,对所述多个尺寸中各个尺寸对应的层参数之间取值相同的层参数进行合并,得到合并模型参数,并确定所述合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
本申请的一个实施例中,所述模型编译模块,包括:
模型编译单元,用于基于所述多个尺寸中每一尺寸对所述待编译模型进行编译;
数据获得单元,用于提取所述待编译模型内记录的、处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,并获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的计算指令;
参数处理单元,用于对所提取的模型参数进行预处理,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,其中,所述预处理包括:按照预设的参数格式转换规则对所提取的模型参数进行格式转换,和/或按照预设的计算算法对所提取的模型参数进行预计算。
本申请的一个实施例中,所述参数处理单元,具体用于:
基于运行所述编译后模型的处理器的性能参数,对所提取的模型参数进行格式转换,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数;和/或
基于所述待编译模型规定的计算算法,对所提取的模型参数进行预计算,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数。
本申请的一个实施例中,在所述输入数据为图像数据的情况下,所述尺寸包括一次输入的输入数据中图像的数量、图像的颜色通道数量、图像的高度、图像的宽度中的至少一种。
本申请的一个实施例中,运行所述编译后模型的处理器包括:图像处理器GPU、x86处理器、微型处理器arm。
本申请的一个实施例中,所述装置还包括模型更新模块,所述模型更新模块用于:
在获得新增输入数据的新的尺寸的情况下,基于所述新的尺寸对所述待编译模型进行编译,得到所述待编译模型处理所述新增输入数据使用的新计算指令和所述待编译模型处理所述新增输入数据使用的新模型参数;
对所述新模型参数和所述合并模型参数中取值相同的参数进行合并,得到新的合并模型参数;
将所述新模型参数与所述新的尺寸之间的对应关系添加到所述编译后模型包含的对应关系中,得到新的对应关系;
将所述新计算指令添加到所述编译后模型包含的计算指令中,并根据所述新的合并模型参数、所述新的对应关系更新所述编译后模型包含的合并模型参数、对应关系,得到新编译后模型。
第四方面,本申请实施例提供了一种模型运行装置,所述装置包括:
第二尺寸获得模块,用于获得待处理输入数据的尺寸;
指令确定模块,用于在对待编译模型进行编译得到的编译后模型中,确定所获得的尺寸对应的计算指令,其中,所述编译后模型包含:至少一尺寸对应的计算指令、合并模型参数和对应关系,每一尺寸对应的计算指令为:所述编译后模型处理该尺寸的输入数据使用的计算指令,所述合并模型参数为:对所述待编译模型处理所述至少一尺寸中每一尺寸的输入数据使用的模型参数之间取值相同的参数进行合并后的参数,所述对应关系为:合并模型参数中各个参数与所述至少一尺寸中各个尺寸的对应关系;
参数确定模块,用于根据所述对应关系,从所述合并模型参数中确定所获得的尺寸对应的模型参数;
模型运行模块,用于通过基于所确定模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
本申请的一个实施例中,所述参数确定模块,具体用于:
针对所述编译后模型的每一网络层,从所述合并模型参数中,获取所获得的尺寸对应的各个层参数,得到所获得的尺寸对应的模型参数,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
本申请的一个实施例中,所述模型运行模块,具体用于:
对所确定的模型参数进行预处理,其中,所述预处理包括:按照预设的参数格式转换规则对所确定的模型参数进行格式转换,和/或按照预设的计算算法对所确定的模型参数进行预计算;
通过基于预处理后模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
本申请的一个实施例中,所述装置还包括错误提示模块,所述错误提示模块用于:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,生成表征输入数据尺寸错误的提示信息。
本申请的一个实施例中,所述装置还包括尺寸记录模块,所述尺寸记录模块用于:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,记录所述待处理输入数据的尺寸,以使得对所述待编译模型重新编译时基于所记录的尺寸对所述编译后模型进行更新。
第五方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面中任一项所述的方法步骤。
第六方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第二方面中任一项所述的方法步骤。
第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法步骤。
第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第二方面中任一项所述的方法步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的模型编译方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的模型运行方法。
本申请实施例有益效果:
由上述的技术方案可见,应用本申请实施例提供的方案进行模型编译时,一方面,获得待编译模型的输入数据的多个尺寸后,基于多个尺寸中每一尺寸对待编译模型进行编译,获得待编译模型处理多个尺寸中每一尺寸的输入数据使用的模型参数和待编译模型处理多个尺寸中每一尺寸的输入数据使用的计算指令,对多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数。这样无需对取值相同的模型参数进行重复存储,可以节省编译后模型中模型参数所占的存储空间。
另一方面,在确定合并模型参数中各个参数与多个尺寸中各个尺寸的对应关系后,生成包含多个尺寸中每一尺寸对应的计算指令、合并模型参数和对应关系的编译后模型。这样得到的一个编译后模型中包含多个尺寸对应的计算指令以及模型参数,因此,一个编译后模型能够支持对多个尺寸的输入数据进行处理。在需要对多个尺寸的输入数据进行处理时,不再需要针对每一尺寸的输入数据分别设置编译后模型,也就是,通过一个编译后模型即可实现对多个尺寸的输入数据进行处理,因而,进一步地节省了编译后模型所占的存储空间。并且,在对多个尺寸的输入数据进行处理时,不再需要运行多个编译后模型,通过运行一个编译后模型即可实现对多个尺寸输入数据的处理。因此,在对多个尺寸的输入数据进行处理时,可以降低运行编译后模型所占的运行内存。
综合以上,应用本申请实施例提供的方案对待编译模型进行编译,可以降低生成的编译后模型对存储资源和运行资源的需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种模型编译方法的流程示意图。
图2为本申请实施例提供的一种模型编译过程的示意图。
图3为本申请实施例提供的另一种模型编译过程的示意图。
图4为本申请实施例提供的又一种模型编译过程的示意图。
图5为本申请实施例提供的一种模型参数合并方法的流程示意图。
图6为本申请实施例提供的一种合并模型参数的示意图。
图7为本申请实施例提供的另一种模型编译方法的流程示意图。
图8为本申请实施例提供的一种模型运行方法的流程示意图。
图9为本申请实施例提供的一种编译后模型运行过程的示意图。
图10为本申请实施例提供的另一种模型运行方法的流程示意图。
图11为本申请实施例提供的一种模型编译装置的结构示意图。
图12为本申请实施例提供的一种模型运行装置的结构示意图。
图13为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,图1为本申请实施例提供的一种模型编译方法的流程示意图,上述方法可以应用于电子设备中。
具体的,上述电子设备中用于执行本申请实施例所提供方案的处理器可以是GPU(Graphics Processing Unit,图像处理器)处理器、x86处理器、arm(Advanced RISCMachines,微型处理器)处理器等。
具体的,上述方法包括如下步骤101至步骤104。
步骤101,获得待编译模型的输入数据的多个尺寸。
其中,上述待编译模型可以为训练后的网络模型。具体的,上述待编译模型可以是深度神经网络模型、循环神经网络模型、卷积神经网络模型等。待编译模型的输入数据可以是图像数据、语音数据等。输入数据的尺寸可以为一次输入的数据的大小、数量、比特位数量等。
本申请的一个实施例中,在输入数据为图像数据的情况下,输入数据的尺寸可以包括:一次输入的输入数据中图像的数量N、图像的颜色通道数量C、图像的高度H、图像的宽度W。例如,输入数据的尺寸可以为1*3*1080*1920,表示一次输入的输入数据中图像的数量为1,图像的颜色通道数量为3,图像的高度为1080,图像的宽度为1920。
本申请的一个实施例中,在输入数据为语音数据的情况下,输入数据的尺寸可以包括:一次输入的输入数据中音频的频率、音频的声道数、音频码率等。
步骤102,基于多个尺寸中每一尺寸对待编译模型进行编译,获得待编译模型处理多个尺寸中每一尺寸的输入数据使用的模型参数和待编译模型处理多个尺寸中每一尺寸的输入数据使用的计算指令。
其中,待编译模型通常由计算机高级语言编写得到,例如,上述计算机高级语言可以是C语言、Java语言、Python语言等。由于电子设备无法直接运行采用上述计算机高级语言编写的待编译模型,因此需要将待编译模型转换成机器可以识别的可执行文件。通过运行可执行文件,来实现待编译模型的功能。
对待编译模型进行编译,可以将待编译模型转换成可执行文件。通常需要借助编译器实现对待编译模型的编译,编译后可以得到用于对输入数据进行处理的计算指令和用于对输入数据进行处理的模型参数。例如,假设待编译模型中包含的网络层有:卷积层、池化层和relu激活层,则编译后可以得到针对卷积操作的计算指令、针对池化操作的计算指令、针对relu激活操作的计算指令、以及各个网络层的模型参数。对编译得到的计算指令和模型参数进行打包,可以得到待编译模型对应的可执行文件。
具体的,如图2所示,在利用编译器对待编译模型进行编译时,可以针对输入数据的尺寸对待编译模型进行编译,得到上述待编译模型处理该尺寸的输入数据时使用的模型参数和待编译模型处理该尺寸的输入数据时使用的计算指令,也就是,得到上述尺寸对应的模型参数和计算指令。
例如,如图3所示,在利用编译器对待编译模型进行编译时,可以针对输入数据的尺寸1*3*1080*1920对待编译模型进行编译,得到上述待编译模型处理1*3*1080*1920这一尺寸的输入数据时使用的模型参数和待编译模型处理1*3*1080*1920这一尺寸的输入数据时使用的计算指令,也就是,得到1*3*1080*1920这一尺寸对应的模型参数和计算指令。
在基于每一尺寸对待编译模型进行编译时,可以向编译器中输入多个尺寸,针对每一尺寸对待编译模型进行一次编译,通过对待编译模型进行多次编译,得到多个尺寸分别对应的模型参数和计算指令。
例如,如图4所示,假设上述多个尺寸包括1*3*1080*1920和1*3*720*1280两种尺寸,在利用编译器对待编译模型进行编译时,输入上述两种尺寸,相应地,针对1*3*1080*1920这一尺寸对待编译模型进行一次编译,得到1*3*1080*1920这一尺寸对应的模型参数和计算指令,针对1*3*720*1280这一尺寸对待编译模型进行一次编译,得到1*3*720*1080这一尺寸对应的模型参数和计算指令。
步骤103,对多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数,并确定合并模型参数中各个参数与多个尺寸中各个尺寸的对应关系。
由于待编译模型包括多个网络层,每一网络层又包括多个模型参数,因此,待编译模型包括多个模型参数,基于此,可以认为每一尺寸对应的模型参数为一组模型参数,也就是,每一组模型参数包括待编译模型的各个网络层的参数,即,每一组模型参数包括多个模型参数。
申请人在实现本申请实施例提供的方案的过程中发现,各组模型参数中相同模型参数的取值可能会相同。鉴于此,本申请的一个实施例中,可以对各组模型参数之间取值相同的模型参数进行合并,也就是以单个模型参数为单位对各组模型参数之间取值相同模型参数进行合并。具体的,当每两组模型参数之间存在取值相同的参数时,可以对上述取值相同的参数进行合并。
假设,待编译模型的模型参数包括:a、b、c和d。尺寸1对应的模型参数中上述各参数的取值分别为:2、3、4、5,尺寸2对应的模型参数中上述各参数的取值分别为:2、4、3、5,可见,上述两组模型参数中参数a和d的取值相同,因此,可以对上述两组模型参数中参数a和参数d进行合并。
本申请的另一个实施例中,也可以以网络层为单位对各组模型参数之间取值相同的模型参数进行合并。具体的,当每两组模型参数之间存在参数取值相同的层参数时,可以对上述层参数进行合并。
其中,上述层参数为该尺寸对应的模型参数中属于同一网络层的参数。层参数相同可以理解为:两组模型参数中属于该层参数的各模型参数的取值均对应相等。
例如,假设待编译模型的模型参数包括层参数X和层参数Y,层参数X包括模型参数x1、x2、x3,层参数Y包括模型参数y1、y2、y3。尺寸1对应的层参数X中各模型参数x1、x2、x3的取值分别为2、3、4,层参数Y中各模型参数y1、y2、y3的取值分别为5、6、7。尺寸2对应的层参数X中各模型参数x1、x2、x3的取值分别为2、3、4,层参数Y中各模型参数y1、y2、y3的取值分别为5、7、7。可见,上述两组模型参数中层参数X中各模型参数的取值相等,层参数Y中各模型参数的取值不相等,因此,可以对上述两组模型参数中层参数X进行合并。
由于各个尺寸与模型参数之间存在对应关系,所以上述合并模型参数中的每一参数与多个尺寸中各个尺寸之间也存在对应关系。合并模型参数中包括未合并的模型参数和合并过的模型参数。对于未合并过的模型参数,其对应的尺寸保持不变。对于合并过的模型参数,其对应的尺寸包括合并前各个模型参数对应的尺寸。例如,假设合并前尺寸为1*3*720*1280情况下对应的模型参数z的取值为1,尺寸为1*3*1080*1920情况下对应的模型参数z的取值也为1,则合并后的合并模型参数中z对应的尺寸包括1*3*720*1280和1*3*1080*1920。
本申请的一个实施例中,在确定合并模型参数中各个参数与各个尺寸的对应关系后,可以对合并模型参数中的每一参数标注该参数所对应的尺寸,也就是以单个模型参数为单位对各个模型参数进行标注。
本申请的一个实施例中,也可以对合并模型参数中的每一网络层标注该层模型参数所对应的尺寸,也就是以网络层为单位对各层模型参数进行标注。
这样便于后续在运行编译后模型时,针对不同的输入数据的尺寸,从合并模型参数中得到该尺寸对应的模型参数。
步骤104,生成包含多个尺寸中每一尺寸对应的计算指令、合并模型参数和对应关系的编译后模型。
具体的,可以对多个尺寸中每一尺寸对应的计算指令、合并模型参数和对应关系进行打包,得到支持对多个尺寸的输入数据进行处理的编译后模型。
本申请的可选实施例中,运行上述编译后模型的处理器可以包括下述处理其中的至少一种:
GPU处理器、x86处理器、arm处理器等。
由上述的技术方案可见,应用上述实施例提供的方案进行模型编译时,一方面,获得待编译模型的输入数据的多个尺寸后,基于多个尺寸中每一尺寸对待编译模型进行编译,获得待编译模型处理多个尺寸中每一尺寸的输入数据使用的模型参数和待编译模型处理多个尺寸中每一尺寸的输入数据使用的计算指令,对多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数。这样无需对取值相同的模型参数进行重复存储,可以节省编译后模型中模型参数所占的存储空间。
另一方面,在确定合并模型参数中各个参数与多个尺寸中各个尺寸的对应关系后,生成包含多个尺寸中每一尺寸对应的计算指令、合并模型参数和对应关系的编译后模型。这样得到的一个编译后模型中包含多个尺寸对应的计算指令以及模型参数,因此,一个编译后模型能够支持对多个尺寸的输入数据进行处理。在需要对多个尺寸的输入数据进行处理时,不再需要针对每一尺寸的输入数据分别设置编译后模型,也就是,通过一个编译后模型即可实现对多个尺寸的输入数据进行处理,因而,进一步地节省了编译后模型所占的存储空间。并且,在对多个尺寸的输入数据进行处理时,不再需要运行多个编译后模型,通过运行一个编译后模型即可实现对多个尺寸输入数据的处理。因此,在对多个尺寸的输入数据进行处理时,可以降低运行编译后模型所占的运行内存。
综合以上,应用上述实施例提供的方案对待编译模型进行编译,可以降低生成的编译后模型对存储资源和运行资源的需求。
本申请的一个实施例中,对于上述步骤102,在获得待编译模型处理每一尺寸的输入数据使用的模型参数时,可以包括如下步骤A和步骤B。
步骤A,提取待编译模型内记录的、处理每一尺寸的输入数据使用的模型参数。
具体的,待编译模型包括多个网络层,每一网络层包括多个模型参数。在提取模型参数时,可以按照网络层的层级顺序对每一网络层的模型参数进行提取。
步骤B,对所提取的模型参数进行预处理,得到待编译模型处理每一尺寸的输入数据使用的模型参数。
其中,预处理包括:按照预设的参数格式转换规则对所提取的模型参数进行格式转换,和/或按照预设的计算算法对所提取的模型参数进行预计算。
本申请的一个实施例中,上述参数格式转换规则可以是依据运行上述编译后模型的处理器对数据的需求而设定的规则。
具体的,上述参数格式转换规则可以包括:数据维度转换规则、进位计数制转换规则等。
其中,上述数据维度转换规则为对数据的维度进行转换的规则。例如,将3*4的矩阵转换为4*4的矩阵,将4维的数据集转换为3维的数据集等。
上述进位计数制转换规则为对数据的进位制进行转换的规则。例如,将8进制的数据转换为2进制的数据,将10进制的数据转换为16进制的数据等。
本申请的一个实施例中,可以基于运行编译后模型的处理器的性能参数,对所提取的模型参数进行格式转换。
其中,上述性能参数可以包括处理器一次能处理的数据的最大位数。例如,对于32位处理器而言,一次能处理的数据的最大位数为32比特位。
由于发明人在设计开发上述待编译模型时,往往是按照待编译模型的实现需求定义待编译模型中的各个模型参数的,而不同的处理器在进行数据处理时,受处理器的性能参数影响,不同的处理器不仅数据处理能力不同,而且对数据的要求也不一样。例如,对数据的对齐方式等方面的要求不同,如,32位的处理器在数据为32比特位对齐时数据处理效率最高,64位的处理器在数据为64比特位对齐时数据处理效率最高等。为此可以对上述所提取的模型参数进行格式转换,得到适合不同类型的处理器的模型参数,例如,对于32位处理器,可以将上述模型参数的格式转化为32比特位,从而提高处理器进行数据处理的速度。
本申请的一个实施例中,在提取得到模型参数后,还可以基于待编译模型规定的计算算法,对所提取的模型参数进行预计算。
其中,上述待编译模型规定的计算算法可以是加法、乘法等。例如,假设在对输入数据进行处理时涉及到3个模型参数相乘,上述3个模型参数的取值分别为3、4和5。则可以预先计算出上述3个模型参数相乘的计算结果60。这样在后续利用模型参数对输入数据进行处理时,无需再对上述参数进行计算,可以节省计算资源。
本申请的一个实施例中,针对不同处理器对数据的需求,可以在编译时对模型参数依据不同的参数格式转换规则进行格式转换,分别得到在不同处理器上能够针对不同尺寸的输入数据进行处理的多个编译后模型,再将所得到的编译后模型合并,即可得到适用于不同处理器、不同尺寸的输入参数的编译后模型。
例如,在对待编译模型进行编译时,针对GPU处理器对应的参数格式转换规则对模型参数的格式进行转换,针对尺寸为1*3*720*1280和1*3*1080*1920的输入数据进行编译,得到可以在GPU处理器上对1*3*720*1280和1*3*1080*1920尺寸的输入数据进行处理的第一编译后模型;
针对x86处理器对应的参数格式转换规则对模型参数的格式进行转换,针对尺寸为1*3*720*1280和1*3*1080*1920的输入数据进行编译,得到可以在x86处理器上对1*3*720*1280和1*3*1080*1920尺寸的输入数据进行处理的第二编译后模型;
针对arm处理器对应的参数格式转换规则对模型参数的格式进行转换,针对尺寸为1*3*720*1280和1*3*1080*1920的输入数据进行编译,得到可以在arm处理器上对1*3*720*1280和1*3*1080*1920尺寸的输入数据进行处理的第三编译后模型;
将第一编译后模型、第二编译后模型、第三编译后模型进行打包,得到一个可以在GPU处理器、x86处理器、arm处理器上运行、对1*3*720*1280和1*3*1080*1920尺寸的输入数据进行处理的编译后模型。
本申请的一个实施例中,对于上述步骤103,在对模型参数进行合并时,可以针对待编译模型的每一网络层,对多个尺寸中各个尺寸对应的层参数之间取值相同的层参数进行合并,得到合并模型参数。
其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
下面结合图5对模型参数的合并过程进行说明。
假设,获得了输入数据的多个尺寸。多个尺寸中每一尺寸对应的模型参数称为一组模型参数。各组模型参数之间的排列序号可以根据各组模型参数的获取先后顺序确定,也可以随机确定。
每一组模型参数中包括多个层参数。每一组模型参数中各个层参数的排列序号可以根据待编译模型中各网络层依次排列的顺序确定。
具体的,上述合并过程包括:
步骤501,将第一组模型参数作为初始的合并模型参数。
步骤502,判断是否已经遍历了每一组模型参数,在遍历了每一组模型参数的情况下,结束合并模型参数流程,在未遍历每一组模型参数的情况下,执行步骤503;
步骤503,判断下一组模型参数中的第一层参数是否存在于合并模型参数中,在判断结果为否时,将该层参数添加到合并模型参数中并执行步骤504,在判断结果为相同时,执行步骤504;
步骤504,判断是否已经遍历了上述下一组模型参数中每一层参数,在遍历了每一层参数的情况下,返回上述步骤502,在未遍历每一层参数的情况下,执行步骤505;
步骤505,判断下一层参数是否存在于合并模型参数中,当判断结果为否时,将该层参数添加到合并模型参数中并执行步骤504,当判断结果为是时,返回上述步骤504。
例如,如图6所示,假设有第一组模型参数和第二组模型参数,Param0、Param1、Param1’、Param2……表示每一组模型参数中的每一网络层的层参数。其中,Param1、Param1’表示同一模型参数在不同尺寸中对应的取值。首先将第一组模型参数中的每一层参数作为初始的合并模型参数,再对第二组模型参数中的每一层参数进行判断,如图所示,第二组模型参数中的Param0层参数存在于合并模型参数中,因此不将第二组模型参数中的Param0层参数加入到合并模型参数中;第二组模型参数中的Param1’层参数不存在于合并模型参数中,因此将第二组模型参数中的Param1层参数加入到合并模型参数中,以此类推,最终得到合并模型参数。
参见图7,本申请的一个实施例中,还提供了另一种模型编译方法的流程示意图,上述方法包括如下步骤701至步骤704。
步骤701,在获得新增输入数据的新的尺寸的情况下,基于新的尺寸对待编译模型进行编译,得到待编译模型处理新增输入数据使用的新计算指令和待编译模型处理新增输入数据使用的新模型参数。
其中,上述新增输入数据的新的尺寸可以是:对待编译模型进行编译时所基于的多个尺寸之外的尺寸。例如,假设对待编译模型进行编译时所基于的尺寸为:1*3*1080*1920和1*3*720*1080,而编译后模型接收到的输入数据的尺寸为:3*3*720*1080,上述尺寸为对待编译模型进行编译时所基于的多个尺寸之外的尺寸,因此上述尺寸为新的尺寸。
具体的,可以将编译后模型在运行过程中接收到的、不包含对应的计算指令的输入数据作为新增输入数据,将上述新增输入数据的尺寸作为新的尺寸。
上述新的尺寸对应的新计算指令和新模型参数的获得方式,同上述步骤102中获得每一尺寸对应的计算指令和模型参数的获得方式相同,在此不作赘述。
步骤702,对新模型参数和合并模型参数中取值相同的参数进行合并,得到新的合并模型参数。
具体的,可以以单个模型参数为单位,确定新模型参数与合并模型参数中取值相同的模型参数,对所确定的模型参数进行合并,得到新的合并模型参数。也可以以网络层为单位,确定新模型参数与合并模型参数中取值相同的层参数,对所确定的层参数进行合并,得到新的合并模型参数。
在对新模型参数和合并模型参数中取值相同的参数进行合并时,可以将合并模型参数中的所有参数作为一组模型参数,依次采用新模型参数中的参数与合并模型参数中的参数进行比对,对于取值对应相等的参数进行合并,对于取值不相等的参数,则将上述参数的取值添加到上述合并模型参数中,直至遍历所有新模型参数中的所有模型参数,得到新的合并模型参数。其合并方法同上述步骤103中对模型参数进行合并的方法类似。
例如,假设有一组新模型参数和一组合并模型参数,Param0、Param1、Param2……表示合并模型参数中的每一网络层的层参数,Param0、Param1’、Param2……表示新模型参数中的每一网络层的层参数。其中,Param1、Param1’表示同一模型参数在不同尺寸中对应的取值。对新模型参数中的每一层参数进行判断,得知新模型参数中的Param0层参数、Param2层参数……存在于合并模型参数中,因此不将新模型参数中的Param0层参数、Param2层参数……加入到合并模型参数中;新模型参数中的Param1’层参数不存在于合并模型参数中,因此将新模型参数中的Param1’层参数加入到合并模型参数中,以此类推,最终得到新的合并模型参数,包含Param0、Param1、Param1’、Param2……层参数。
步骤703,将新模型参数与新的尺寸之间的对应关系添加到编译后模型包含的对应关系中,得到新的对应关系。
将新模型参数与新的尺寸之间的对应关系添加到原来的编译后模型包含的对应关系中,这样得到的新的对应关系中,可以包含新的合并模型参数中每一模型参数与尺寸之间的对应关系,便于后续在运行新编译后模型过程中,针对输入数据的尺寸对新的合并模型参数中与上述尺寸对应的模型参数进行调用。
例如,假设编译后模型包含的对应关系中,模型参数z取值为1时对应的尺寸包括1*3*720*1280和1*3*1080*1920,新模型参数z取值为1,对应的新的尺寸为3*3*720*1280,则合并后得到的新的对应关系中,模型参数z取值为1时对应的尺寸包括1*3*720*1280、1*3*1080*1920和3*3*720*1280。
步骤704,将新计算指令添加到编译后模型包含的计算指令中,并根据新的合并模型参数、新的对应关系更新编译后模型包含的合并模型参数、对应关系,得到新编译后模型。
具体的,得到的新编译后模型中包含新计算指令、原来的编译后模型中包含的计算指令、新的合并模型参数、新的对应关系,这样得到的新编译后模型既可以对原来的编译后模型所支持的尺寸对应的输入数据进行处理,也可以对上述新的尺寸对应的输入数据进行处理。
参见图8,图8为本申请实施例提供的一种模型运行方法的流程示意图,上述方法包括如下步骤801至步骤804。
步骤801,获得待处理输入数据的尺寸。
其中,待处理输入数据的尺寸与步骤101中输入数据的尺寸概念相同,在此不作赘述。
步骤802,在对待编译模型进行编译得到的编译后模型中,确定所获得的尺寸对应的计算指令。
其中,编译后模型包含:至少一尺寸对应的计算指令、合并模型参数和对应关系,每一尺寸对应的计算指令为:编译后模型处理该尺寸的输入数据使用的计算指令,合并模型参数为:对待编译模型处理上述至少一尺寸中每一尺寸的输入数据使用的模型参数之间取值相同的参数进行合并后的参数,对应关系为:合并模型参数中各个参数与上述至少一尺寸中各个尺寸的对应关系。
上述编译后模型为根据上述模型编译实施例得到的编译后模型。
由于上述编译后模型中包括至少一尺寸对应的计算指令,且上述合并模型参数中包括上述至少一尺寸中每一尺寸对应的模型参数,所以,上述编译后模型可以支持对上述尺寸的输入数据进行处理。
由于编译后模型中包含的至少一尺寸对应的计算指令,因此,获得待处理输入数据的尺寸后,可以直接根据该尺寸确定该尺寸所对应的计算指令。
本申请的一个实施例中,在编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,可以生成表征输入数据尺寸错误的提示信息。其中,上述提示信息可以是“error”、“warning”、“错误数据”等。
本申请的一个实施例中,在编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,可以记录上述待处理输入数据的尺寸,以使得对待编译模型重新编译时基于所记录的尺寸对编译后模型进行更新。
具体的,针对编译后模型不能处理的输入数据的尺寸进行记录,在对上述待编译模型重新编译时,根据上述步骤701至步骤704提供的方案,基于所记录的尺寸对编译后模型进行更新,得到新的编译后模型。这样得到的新的编译后模型既可以对原来的编译后模型所支持的尺寸对应的输入数据进行处理,也可以对所记录的、原来的编译后模型不能处理的尺寸对应的输入数据进行处理。
步骤803,根据对应关系,从合并模型参数中确定所获得的尺寸对应的模型参数。
由于编译后模型中包含合并模型参数中模型参数与输入数据的尺寸之间的对应关系,因此可以从合并模型参数中确定上述尺寸对应的模型参数。
本申请的一个实施例中,可以针对编译后模型的每一网络层,从合并模型参数中,获取所获得的尺寸对应的各个层参数,得到所获得的尺寸对应的模型参数。
其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。由于待编译模型包括多个网络层,待编译模型的模型参数与尺寸存在对应关系,因此待编译模型中的层参数与尺寸之间也存在对应关系。根据上述对应关系,可以确定上述尺寸对应的模型参数。
步骤804,通过基于所确定模型参数执行所确定计算指令的方式,运行编译后模型,实现对待处理输入数据的处理。
本申请的一个实施例中,在对待处理输入数据进行处理时,可以包括如下步骤C和步骤D。
步骤C,对所确定的模型参数进行预处理。
其中,上述预处理的方式与步骤102中的参数预处理方式相同,在此不作赘述。
步骤D,通过基于预处理后模型参数执行所确定计算指令的方式,运行编译后模型,实现对待处理输入数据的处理。
本申请的一个实施例中,上述参数格式转换规则可以是依据运行上述编译后模型的处理器对数据的需求而设定的规则。这样经过格式转换后的模型参数满足处理器的需求,基于转换后的模型参数对待处理输入数据进行处理,可以加快处理速度,提高处理速率。
如图9,示出了一种编译后模型运行过程的示意图。从图9可知,上述编译后模型中包括1*3*720*1280这一尺寸对应的计算指令、1*3*1080*1920这一尺寸对应的计算指令以及合并模型参数。其中,合并模型参数包括:Param0、Param1、Param1’……等层参数,Param1、Param1’表示同一模型参数在不同尺寸中对应的取值。其中,Param0对应的尺寸为1*3*720*1280和1*3*1080*1920,Param1对应的尺寸为1*3*1080*1920,Param1’对应的尺寸为1*3*720*1280,Param2对应的尺寸为1*3*720*1280和1*3*1080*1920,Param3对应的尺寸为1*3*720*1280和1*3*1080*1920。
当输入编译后模型的输入数据的尺寸为1*3*1080*1920时,如图9所示,获得1*3*1080*1920这一尺寸对应的计算指令,并从合并模型参数中获得1*3*1080*1920这一尺寸对应的模型参数Param0、Param1、Param2、Param3……,通过基于所获得的模型参数执行所获得的计算指令,运行编译后模型,实现对1*3*1080*1920这一尺寸的输入数据的处理。
当输入编译后模型的输入数据的尺寸为1*3*720*1280时,如图9所示,获得1*3*720*1280这一尺寸对应的计算指令,并从合并模型参数中获得1*3*720*1280这一尺寸对应的模型参数Param0、Param1’、Param2、Param3……,通过基于所获得的模型参数执行所获得的计算指令,运行编译后模型,实现对1*3*720*1280这一尺寸的输入数据的处理。
编译后模型中包括每一尺寸对应的计算指令、合并模型参数、合并模型参数中参数与尺寸的对应关系。根据不同尺寸对应的计算指令,以及合并模型参数中支持对不同尺寸的输入数据进行处理的模型参数,可以实现对多个尺寸的输入数据进行处理。
由上述的技术方案可见,应用上述实施例提供的方案进行模型运行时,首先获得输入数据的尺寸,在编译后模型中确定所获得的尺寸对应的计算指令,根据对应关系,在合并模型参数中确定所获得的尺寸对应的模型参数,基于所确定的模型参数执行所确定的计算指令运行编译后模型,可以实现对输入数据的处理。由于编译后模型中包括每一尺寸对应的计算指令、合并模型参数、合并模型参数中参数与尺寸的对应关系。根据不同尺寸对应的计算指令,以及合并模型参数中支持对不同尺寸的输入数据进行处理的模型参数,可以实现对多个尺寸的输入数据进行处理。由此可见,应用上述实施例提供的方案,运行一个编译后模型可以实现对多个尺寸的输入数据进行处理。
参见图10,图10为本申请实施例提供的另一种模型运行方法的流程示意图,包括如下步骤1001至步骤1003。
步骤1001,获得待处理输入数据的尺寸。
在获得待处理输入数据的尺寸后,可以判断编译后模型中是否包括待处理输入数据的尺寸对应的计算指令。在编译后模型中包括待处理输入数据的尺寸对应的计算指令的情况下,说明编译后模型可以处理上述待处理输入数据,因此执行步骤1002;在编译后模型中不包括待处理输入数据的尺寸对应的计算指令的情况下,说明编译后模型不可以处理上述待处理输入数据,因此执行步骤1003。
步骤1002,在编译后模型中包括待处理输入数据的尺寸对应的计算指令的情况下,利用编译后模型,对待处理输入数据进行处理。
具体包括,在编译后模型中,确定所获得的尺寸对应的计算指令;根据对应关系,从合并模型参数中确定所获得的尺寸对应的模型参数;通过基于所确定模型参数执行所确定计算指令的方式,运行编译后模型,实现对待处理输入数据的处理。
步骤1003,在编译后模型中不包括待处理输入数据的尺寸对应的计算指令的情况下,记录待处理输入数据的尺寸。这样在对待编译模型重新编译时,可以基于所记录的尺寸对编译后模型进行更新,得到新的编译后模型,使得新的编译后模型既可以对原来的编译后模型所支持的尺寸对应的输入数据进行处理,也可以对所记录的、原来的编译后模型不能处理的尺寸对应的输入数据进行处理。
参见图11,图11为本申请实施例提供的一种模型编译装置的结构示意图,所述装置包括:
第一尺寸获得模块1101,用于获得待编译模型的输入数据的多个尺寸;
模型编译模块1102,用于用于基于所述多个尺寸中每一尺寸对所述待编译模型进行编译,获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数和所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的计算指令;
参数合并模块1103,用于对所述多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数,并确定所述合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系;
模型生成模块1104,用于生成包含所述多个尺寸中每一尺寸对应的计算指令、所述合并模型参数和所述对应关系的编译后模型。
本申请的一个实施例中,所述参数合并模块1103,具体用于:
针对所述待编译模型的每一网络层,对所述多个尺寸中各个尺寸对应的层参数之间取值相同的层参数进行合并,得到合并模型参数,并确定所述合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
本申请的一个实施例中,所述模型编译模块1102,包括:
模型编译单元,用于基于所述多个尺寸中每一尺寸对所述待编译模型进行编译;
数据获得单元,用于提取所述待编译模型内记录的、处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,并获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的计算指令;
参数处理单元,用于对所提取的模型参数进行预处理,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,其中,所述预处理包括:按照预设的参数格式转换规则对所提取的模型参数进行格式转换,和/或按照预设的计算算法对所提取的模型参数进行预计算。
本申请的一个实施例中,所述参数处理单元,具体用于:
基于运行所述编译后模型的处理器的性能参数,对所提取的模型参数进行格式转换,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数;和/或
基于所述待编译模型规定的计算算法,对所提取的模型参数进行预计算,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数。
本申请的一个实施例中,在所述输入数据为图像数据的情况下,所述尺寸包括:图像的数量、图像的颜色通道数量、图像的高度、图像的宽度。
本申请的一个实施例中,运行所述编译后模型的处理器包括:图像处理器GPU、x86处理器、微型处理器arm。
本申请的一个实施例中,所述装置还包括模型更新模块,所述模型更新模块用于:
在获得新增输入数据的新的尺寸的情况下,基于所述新的尺寸对所述待编译模型进行编译,得到所述待编译模型处理所述新增输入数据使用的新计算指令和所述待编译模型处理所述新增输入数据使用的新模型参数;
对所述新模型参数和所述合并模型参数中取值相同的参数进行合并,得到新的合并模型参数;
将所述新模型参数与所述新的尺寸之间的对应关系添加到所述编译后模型包含的对应关系中,得到新的对应关系;
将所述新计算指令添加到所述编译后模型包含的计算指令中,并根据所述新的合并模型参数、所述新的对应关系更新所述编译后模型包含的合并模型参数、对应关系,得到新编译后模型。
由上述的技术方案可见,应用上述实施例提供的方案进行模型编译时,一方面,获得待编译模型的输入数据的多个尺寸后,基于多个尺寸中每一尺寸对待编译模型进行编译,获得待编译模型处理多个尺寸中每一尺寸的输入数据使用的模型参数和待编译模型处理多个尺寸中每一尺寸的输入数据使用的计算指令,对多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数。这样无需对取值相同的模型参数进行重复存储,可以节省编译后模型中模型参数所占的存储空间。
另一方面,在确定合并模型参数中各个参数与多个尺寸中各个尺寸的对应关系后,生成包含多个尺寸中每一尺寸对应的计算指令、合并模型参数和对应关系的编译后模型。这样得到的一个编译后模型中包含多个尺寸对应的计算指令以及模型参数,因此,一个编译后模型能够支持对多个尺寸的输入数据进行处理。在需要对多个尺寸的输入数据进行处理时,不再需要针对每一尺寸的输入数据分别设置编译后模型,也就是,通过一个编译后模型即可实现对多个尺寸的输入数据进行处理,因而,进一步地节省了编译后模型所占的存储空间。并且,在对多个尺寸的输入数据进行处理时,不再需要运行多个编译后模型,通过运行一个编译后模型即可实现对多个尺寸输入数据的处理。因此,在对多个尺寸的输入数据进行处理时,可以降低运行编译后模型所占的运行内存。
综合以上,应用上述实施例提供的方案对待编译模型进行编译,可以降低生成的编译后模型对存储资源和运行资源的需求。
参见图12,图12为本申请实施例提供的一种模型运行装置的结构示意图,所述装置包括:
第二尺寸获得模块1201,用于获得待处理输入数据的尺寸;
指令确定模块1202,用于在对待编译模型进行编译得到的编译后模型中,确定所获得的尺寸对应的计算指令,其中,所述编译后模型包含:至少一尺寸对应的计算指令、合并模型参数和对应关系,每一尺寸对应的计算指令为:所述编译后模型处理该尺寸的输入数据使用的计算指令,所述合并模型参数为:对所述待编译模型处理所述至少一尺寸中每一尺寸的输入数据使用的模型参数之间取值相同的参数进行合并后的参数,所述对应关系为:合并模型参数中各个参数与所述至少一尺寸中各个尺寸的对应关系;
参数确定模块1203,用于根据所述对应关系,从所述合并模型参数中确定所获得的尺寸对应的模型参数;
模型运行模块1204,用于通过基于所确定模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
本申请的一个实施例中,所述参数确定模块1203,具体用于:
针对所述编译后模型的每一网络层,从所述合并模型参数中,获取所获得的尺寸对应的各个层参数,得到所获得的尺寸对应的模型参数,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
本申请的一个实施例中,所述模型运行模块1204,具体用于:
对所确定的模型参数进行预处理,其中,所述预处理包括:按照预设的参数格式转换规则对所确定的模型参数进行格式转换,和/或按照预设的计算算法对所确定的模型参数进行预计算;
通过基于预处理后模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
本申请的一个实施例中,所述装置还包括错误提示模块,所述错误提示模块用于:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,生成表征输入数据尺寸错误的提示信息。
本申请的一个实施例中,所述装置还包括尺寸记录模块,所述尺寸记录模块用于:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,记录所述待处理输入数据的尺寸,以使得对所述待编译模型重新编译时基于所记录的尺寸对所述编译后模型进行更新。
由上述的技术方案可见,应用上述实施例提供的方案进行模型运行时,首先获得待处理输入数据的尺寸,在对待编译模型进行编译得到的编译后模型中,确定所获得的尺寸对应的计算指令,并根据对应关系,从合并模型参数中确定所获得的尺寸对应的模型参数,通过基于所确定模型参数执行所确定计算指令的方式,运行编译后模型,实现对待处理输入数据的处理。由于编译后模型中包括每一尺寸对应的计算指令、合并模型参数、合并模型参数中参数与尺寸的对应关系。根据不同尺寸对应的计算指令,以及合并模型参数中支持对不同尺寸的输入数据进行处理的模型参数,可以实现对多个尺寸的输入数据进行处理。由此可见,应用上述实施例提供的方案,运行一个编译后模型可以实现对多个尺寸的输入数据进行处理。
本申请实施例还提供了一种电子设备,如图13所示,包括处理器1301、通信接口1302、存储器1303和通信总线1304,其中,处理器1301,通信接口1302,存储器1303通过通信总线1304完成相互间的通信,
存储器1303,用于存放计算机程序;
处理器1301,用于执行存储器1303上所存放的程序时,实现模型编译方法步骤。
本申请实施例还提供了另一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信,
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现模型运行方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一模型编译方法的步骤。
在本申请提供的又一实施例中,还提供了另一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一模型运行方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一模型编译方法。
在本申请提供的又一实施例中,还提供了另一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一模型运行方法。
由上述的技术方案可见,应用上述实施例提供的方案进行模型编译时,一方面,获得待编译模型的输入数据的多个尺寸后,基于多个尺寸中每一尺寸对待编译模型进行编译,获得待编译模型处理多个尺寸中每一尺寸的输入数据使用的模型参数和待编译模型处理多个尺寸中每一尺寸的输入数据使用的计算指令,对多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数。这样无需对取值相同的模型参数进行重复存储,可以节省编译后模型中模型参数所占的存储空间。
另一方面,在确定合并模型参数中各个参数与多个尺寸中各个尺寸的对应关系后,生成包含多个尺寸中每一尺寸对应的计算指令、合并模型参数和对应关系的编译后模型。这样得到的一个编译后模型中包含多个尺寸对应的计算指令以及模型参数,因此,一个编译后模型能够支持对多个尺寸的输入数据进行处理。在需要对多个尺寸的输入数据进行处理时,不再需要针对每一尺寸的输入数据分别设置编译后模型,也就是,通过一个编译后模型即可实现对多个尺寸的输入数据进行处理,因而,进一步地节省了编译后模型所占的存储空间。并且,在对多个尺寸的输入数据进行处理时,不再需要运行多个编译后模型,通过运行一个编译后模型即可实现对多个尺寸输入数据的处理。因此,在对多个尺寸的输入数据进行处理时,可以降低运行编译后模型所占的运行内存。
综合以上,应用上述实施例提供的方案对待编译模型进行编译,可以降低生成的编译后模型对存储资源和运行资源的需求。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、存储介质实施例和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (24)
1.一种模型编译方法,其特征在于,所述方法包括:
获得待编译模型的输入数据的多个尺寸;
基于所述多个尺寸中每一尺寸对所述待编译模型进行编译,获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数和所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的计算指令;
对所述多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数,并确定所述合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系;
生成包含所述多个尺寸中每一尺寸对应的计算指令、所述合并模型参数和所述对应关系的编译后模型。
2.根据权利要求1所述的方法,其特征在于,所述对所述多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数,包括:
针对所述待编译模型的每一网络层,对所述多个尺寸中各个尺寸对应的层参数之间取值相同的层参数进行合并,得到合并模型参数,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
3.根据权利要求1或2所述的方法,其特征在于,所述获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,包括:
提取所述待编译模型内记录的、处理所述多个尺寸中每一尺寸的输入数据使用的模型参数;
对所提取的模型参数进行预处理,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,其中,所述预处理包括:按照预设的参数格式转换规则对所提取的模型参数进行格式转换,和/或按照预设的计算算法对所提取的模型参数进行预计算。
4.根据权利要求3所述的方法,其特征在于,所述对所提取的模型参数进行预处理,包括:
基于运行所述编译后模型的处理器的性能参数,对所提取的模型参数进行格式转换;和/或
基于所述待编译模型规定的计算算法,对所提取的模型参数进行预计算。
5.根据权利要求1或2所述的方法,其特征在于,在所述输入数据为图像数据的情况下,所述尺寸包括一次输入的输入数据中图像的数量、图像的颜色通道数量、图像的高度、图像的宽度中的至少一种。
6.根据权利要求1或2所述的方法,其特征在于,
运行所述编译后模型的处理器包括:图像处理器GPU、x86处理器、微型处理器arm。
7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在获得新增输入数据的新的尺寸的情况下,基于所述新的尺寸对所述待编译模型进行编译,得到所述待编译模型处理所述新增输入数据使用的新计算指令和所述待编译模型处理所述新增输入数据使用的新模型参数;
对所述新模型参数和所述合并模型参数中取值相同的参数进行合并,得到新的合并模型参数;
将所述新模型参数与所述新的尺寸之间的对应关系添加到所述编译后模型包含的对应关系中,得到新的对应关系;
将所述新计算指令添加到所述编译后模型包含的计算指令中,并根据所述新的合并模型参数、所述新的对应关系更新所述编译后模型包含的合并模型参数、对应关系,得到新编译后模型。
8.一种模型运行方法,其特征在于,所述方法包括:
获得待处理输入数据的尺寸;
在对待编译模型进行编译得到的编译后模型中,确定所获得的尺寸对应的计算指令,其中,所述编译后模型包含:多个尺寸对应的计算指令、合并模型参数和对应关系,每一尺寸对应的计算指令为:所述编译后模型处理该尺寸的输入数据使用的计算指令,所述合并模型参数为:对所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数之间取值相同的参数进行合并后的参数,所述对应关系为:合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系;
根据所述对应关系,从所述合并模型参数中确定所获得的尺寸对应的模型参数;
通过基于所确定模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
9.根据权利要求8所述的方法,其特征在于,所述根据所述对应关系,从所述合并模型参数中确定所获得的尺寸对应的模型参数,包括:
针对所述编译后模型的每一网络层,从所述合并模型参数中,获取所获得的尺寸对应的各个层参数,得到所获得的尺寸对应的模型参数,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
10.根据权利要求8或9所述的方法,其特征在于,所述通过基于所确定模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理,包括:
对所确定的模型参数进行预处理,其中,所述预处理包括:按照预设的参数格式转换规则对所确定的模型参数进行格式转换,和/或按照预设的计算算法对所确定的模型参数进行预计算;
通过基于预处理后模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
11.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,生成表征输入数据尺寸错误的提示信息。
12.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,记录所述待处理输入数据的尺寸,以使得对所述待编译模型重新编译时基于所记录的尺寸对所述编译后模型进行更新。
13.一种模型编译装置,其特征在于,所述装置包括:
第一尺寸获得模块,用于获得待编译模型的输入数据的多个尺寸;
模型编译模块,用于基于所述多个尺寸中每一尺寸对所述待编译模型进行编译,获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数和所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的计算指令;
参数合并模块,用于对所述多个尺寸中各个尺寸对应的模型参数之间取值相同的参数进行合并,得到合并模型参数,并确定所述合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系;
模型生成模块,用于生成包含所述多个尺寸中每一尺寸对应的计算指令、所述合并模型参数和所述对应关系的编译后模型。
14.根据权利要求13所述的装置,其特征在于,所述参数合并模块,具体用于:
针对所述待编译模型的每一网络层,对所述多个尺寸中各个尺寸对应的层参数之间取值相同的层参数进行合并,得到合并模型参数,并确定所述合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
15.根据权利要求13或14所述的装置,其特征在于,所述模型编译模块,包括:
模型编译单元,用于基于所述多个尺寸中每一尺寸对所述待编译模型进行编译;
数据获得单元,用于提取所述待编译模型内记录的、处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,并获得所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的计算指令;
参数处理单元,用于对所提取的模型参数进行预处理,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数,其中,所述预处理包括:按照预设的参数格式转换规则对所提取的模型参数进行格式转换,和/或按照预设的计算算法对所提取的模型参数进行预计算。
16.根据权利要求15所述的装置,其特征在于,所述参数处理单元,具体用于:
基于运行所述编译后模型的处理器的性能参数,对所提取的模型参数进行格式转换,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数;和/或
基于所述待编译模型规定的计算算法,对所提取的模型参数进行预计算,得到所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数。
17.根据权利要求13或14所述的装置,其特征在于,在所述输入数据为图像数据的情况下,所述尺寸包括一次输入的输入数据中图像的数量、图像的颜色通道数量、图像的高度、图像的宽度中的至少一种。
18.根据权利要求13或14所述的装置,其特征在于,
运行所述编译后模型的处理器包括:图像处理器GPU、x86处理器、微型处理器arm。
19.根据权利要求13或14所述的装置,其特征在于,所述装置还包括模型更新模块,所述模型更新模块用于:
在获得新增输入数据的新的尺寸的情况下,基于所述新的尺寸对所述待编译模型进行编译,得到所述待编译模型处理所述新增输入数据使用的新计算指令和所述待编译模型处理所述新增输入数据使用的新模型参数;
对所述新模型参数和所述合并模型参数中取值相同的参数进行合并,得到新的合并模型参数;
将所述新模型参数与所述新的尺寸之间的对应关系添加到所述编译后模型包含的对应关系中,得到新的对应关系;
将所述新计算指令添加到所述编译后模型包含的计算指令中,并根据所述新的合并模型参数、所述新的对应关系更新所述编译后模型包含的合并模型参数、对应关系,得到新编译后模型。
20.一种模型运行装置,其特征在于,所述装置包括:
第二尺寸获得模块,用于获得待处理输入数据的尺寸;
指令确定模块,用于在对待编译模型进行编译得到的编译后模型中,确定所获得的尺寸对应的计算指令,其中,所述编译后模型包含:多个尺寸对应的计算指令、合并模型参数和对应关系,每一尺寸对应的计算指令为:所述编译后模型处理该尺寸的输入数据使用的计算指令,所述合并模型参数为:对所述待编译模型处理所述多个尺寸中每一尺寸的输入数据使用的模型参数之间取值相同的参数进行合并后的参数,所述对应关系为:合并模型参数中各个参数与所述多个尺寸中各个尺寸的对应关系;
参数确定模块,用于根据所述对应关系,从所述合并模型参数中确定所获得的尺寸对应的模型参数;
模型运行模块,用于通过基于所确定模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
21.根据权利要求20所述的装置,其特征在于,所述参数确定模块,具体用于:
针对所述编译后模型的每一网络层,从所述合并模型参数中,获取所获得的尺寸对应的各个层参数,得到所获得的尺寸对应的模型参数,其中,每一尺寸对应的层参数包括:该尺寸对应的模型参数中属于同一网络层的参数。
22.根据权利要求20或21所述的装置,其特征在于,所述模型运行模块,具体用于:
对所确定的模型参数进行预处理,其中,所述预处理包括:按照预设的参数格式转换规则对所确定的模型参数进行格式转换,和/或按照预设的计算算法对所确定的模型参数进行预计算;
通过基于预处理后模型参数执行所确定计算指令的方式,运行所述编译后模型,实现对所述待处理输入数据的处理。
23.根据权利要求20或21所述的装置,其特征在于,所述装置还包括错误提示模块,所述错误提示模块用于:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,生成表征输入数据尺寸错误的提示信息。
24.根据权利要求20或21所述的装置,其特征在于,所述装置还包括尺寸记录模块,所述尺寸记录模块用于:
在所述编译后模型中不包含所获得的待处理输入数据的尺寸对应的计算指令的情况下,记录所述待处理输入数据的尺寸,以使得对所述待编译模型重新编译时基于所记录的尺寸对所述编译后模型进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911226498.2A CN112905181B (zh) | 2019-12-04 | 2019-12-04 | 一种模型编译、运行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911226498.2A CN112905181B (zh) | 2019-12-04 | 2019-12-04 | 一种模型编译、运行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112905181A CN112905181A (zh) | 2021-06-04 |
CN112905181B true CN112905181B (zh) | 2023-10-10 |
Family
ID=76104401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911226498.2A Active CN112905181B (zh) | 2019-12-04 | 2019-12-04 | 一种模型编译、运行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905181B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2913700A1 (en) * | 2014-12-09 | 2016-06-09 | Royal Bank Of Canada | Synchronized processing of data by networked computing resources |
CN107391099A (zh) * | 2017-03-30 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种资源预处理方法及装置 |
CN108053033A (zh) * | 2017-12-27 | 2018-05-18 | 中南大学 | 一种函数调用序列生成方法和系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7602998B2 (en) * | 2004-09-15 | 2009-10-13 | Panasonic Corporation | Image signal processing apparatus |
US20140047095A1 (en) * | 2012-08-07 | 2014-02-13 | Advanced Micro Devices, Inc. | System and method for tuning a cloud computing system |
EP3159790B1 (en) * | 2014-06-19 | 2021-03-24 | Fujitsu Limited | Program generation device, program generation method, and program |
CN105446896B (zh) * | 2014-08-29 | 2018-05-04 | 国际商业机器公司 | 映射化简应用的缓存管理方法和装置 |
US10068186B2 (en) * | 2015-03-20 | 2018-09-04 | Sap Se | Model vector generation for machine learning algorithms |
US11194551B2 (en) * | 2017-06-07 | 2021-12-07 | Ab Initio Technology Llc | Dataflow graph configuration |
US20190050710A1 (en) * | 2017-08-14 | 2019-02-14 | Midea Group Co., Ltd. | Adaptive bit-width reduction for neural networks |
CN110390387B (zh) * | 2018-04-20 | 2023-07-18 | 伊姆西Ip控股有限责任公司 | 对深度学习应用所用资源进行评估 |
-
2019
- 2019-12-04 CN CN201911226498.2A patent/CN112905181B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2913700A1 (en) * | 2014-12-09 | 2016-06-09 | Royal Bank Of Canada | Synchronized processing of data by networked computing resources |
CN107391099A (zh) * | 2017-03-30 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种资源预处理方法及装置 |
CN108053033A (zh) * | 2017-12-27 | 2018-05-18 | 中南大学 | 一种函数调用序列生成方法和系统 |
Non-Patent Citations (3)
Title |
---|
An effective fusion and tile size model for optimizing image processing pipelines;Abhinav Jangda;《ACM SIGPLAN Notices》;第53卷(第1期);261–275 * |
Chandan Reddy et.al.Reduction Drawing: Language Constructs and Polyhedral Compilation for Reductions on GPU.《PACT '16: Proceedings of the 2016 International Conference on Parallel Architectures and Compilation》.2016,87-97. * |
埃塞俄比亚街景视频中的交通标志检测和识别;DINGETU TIGISTU DETA;《中国优秀硕士学位论文全文数据库 信息科技辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112905181A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106437B2 (en) | Lookup table optimization for programming languages that target synchronous digital circuits | |
CN110096439B (zh) | 一种面向solidity语言的测试用例生成方法 | |
US7966609B2 (en) | Optimal floating-point expression translation method based on pattern matching | |
CN110825386B (zh) | 代码的编译方法和装置、存储介质 | |
US11282413B2 (en) | Secure multi-party computation method, device, apparatus and computer-readable storage medium | |
CN110941655B (zh) | 一种数据格式转换方法及装置 | |
US20200225919A1 (en) | Generating a synchronous digital circuit from a source code construct defining a function call | |
WO2021175053A1 (zh) | 一种在虚拟机中执行功能模块的方法和装置 | |
CN109460237A (zh) | 代码的编译方法及装置 | |
US10387124B2 (en) | System and method for creating domain specific language | |
CN111159278B (zh) | 数据展示方法及装置、电子设备和计算机可读存储介质 | |
CN111078573A (zh) | 一种测试报文的生成方法及装置 | |
CN112905181B (zh) | 一种模型编译、运行方法及装置 | |
CN108920149B (zh) | 编译方法和编译装置 | |
US20110145654A1 (en) | Method and apparatus for the determination of a repetitive bit value pattern | |
CN112181538B (zh) | 诊断流程执行方法、装置、设备及存储介质 | |
CN110209397B (zh) | 一种数据处理方法、装置及系统 | |
CN116414396A (zh) | 一种llvm的目标定义文件生成方法、装置和电子设备 | |
CN112306496A (zh) | 区块链运行信息分析方法、装置、设备及计算机存储介质 | |
CN113031952A (zh) | 深度学习模型的执行代码的确定方法、装置及存储介质 | |
CN117540669B (zh) | 数字电路的结构化数据处理方法及装置 | |
CN117075912B (zh) | 用于程序语言转换的方法、编译方法及相关设备 | |
CN116841622B (zh) | 一种地址自增访存指令的生成方法、装置、设备及介质 | |
CN112580297B (zh) | 一种编解码数据的方法、电子设备及存储介质 | |
CN117348997A (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 |