CN117762426A - 应用部署方法、装置、设备及存储介质 - Google Patents
应用部署方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117762426A CN117762426A CN202311789189.2A CN202311789189A CN117762426A CN 117762426 A CN117762426 A CN 117762426A CN 202311789189 A CN202311789189 A CN 202311789189A CN 117762426 A CN117762426 A CN 117762426A
- Authority
- CN
- China
- Prior art keywords
- application
- deployed
- interface
- preset
- language
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000006870 function Effects 0.000 claims abstract description 159
- 238000004088 simulation Methods 0.000 claims abstract description 116
- 238000012795 verification Methods 0.000 claims abstract description 113
- 230000000694 effects Effects 0.000 claims abstract description 91
- 238000013136 deep learning model Methods 0.000 claims description 24
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 238000013135 deep learning Methods 0.000 claims description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 30
- 238000012545 processing Methods 0.000 description 26
- 238000011161 development Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 7
- 238000012805 post-processing Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 1
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开一种应用部署方法、装置、设备及存储介质,该方法包括:确定第一语言开发的待部署应用,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,并得到运行结果;所述预设仿真接口的功能与第二设备中相应接口的功能相同,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用;若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码。本申请解决相关技术中,难以满足实际应用需求的技术问题。
Description
技术领域
本申请涉及通信计算机技术领域,尤其涉及一种应用部署方法、装置、设备及存储介质。
背景技术
目前,算法开发人员习惯于使用python语言进行开发,随着基于深度学习的智能应用部署专用处理器(NPU(neural-network process units、嵌入式神经网络处理器)、DSP(digital singnal processor、数字信号处理微处理器)、ASIC(Application SpecificIntegrated Circuit、集成电路芯片))或者芯片的广泛应用,需要解决python算法(基于python语言开发的智能应用)与嵌入式设备之间的部署间隙(嵌入式代码或程序一般使用C语言、C++语言,解决间隙即将基于python语言开发的智能应用程序处理为嵌入式设备能运行的嵌入式代码或程序,且保持应用在嵌入式设备上的性能),目前,相关技术中会采用可视化插件等解决python算法对应智能应用与嵌入式部署之间的部署间隙,这在一定程度上降低了python算法对应智能应用在第二设备上部署的难度,然而可视化插件开发模式与python算法开发逻辑不统一,实际操作(如调试)复杂,致使开发门槛高,难以满足实际应用需求。
发明内容
有鉴于此,本申请实施例提供一种应用部署方法、装置、设备及存储介质,旨在解决相关技术中,在基于专用处理器部署python语言开发的智能应用时,存在实际操作复杂,致使开发门槛高,难以满足实际应用需求的技术问题。
本申请实施例提供了一种应用部署方法,应用于第一设备,所述方法包括:
确定第一语言开发的待部署应用,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,并得到运行结果;
其中,所述预设仿真接口的功能与第二设备中相应接口的功能相同,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用;
若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码。
在本申请的一种可能的实施方式中,所述预设仿真接口为多个,预设仿真接口对相应多个芯片或者处理器的推理能力进行抽象得到,所述推理能力包括智能处理能力以及智能分析能力,所述处理器包括预设专用处理器或者预设通用处理器,所述预设仿真接口包括深度学习推理接口;
所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤之前,所述方法包括:
若检测到当前预设仿真接口与下一预设仿真接口在执行时序上不连贯时,则调用拓展的功能接口,并基于所述拓展的功能接口,运行所述待部署应用的相应功能,直至可以运行所述下一预设仿真接口,其中,相应开发人员通过所述拓展的功能接口开发所述待部署应用的至少第二部分功能,所述第一设备不存在第二部分功能对应的预设仿真接口。
本申请还提供一种应用部署方法,所述待部署应用使用深度学习模型接口实现其第三部分功能,所述深度学习模型接口可以是所述预设仿真接口,也可以是使用所述拓展的功能接口开发得到的接口,所述第三部分功能是所述第一部分功能中的部分或者是所述第二部分功能中的部分。
在本申请的一种可能的实施方式中,所述待部署应用使用不同的深度学习模型表征其不同功能,所述不同的深度学习模型对应功能可以在时序执行上相邻,或者可以在时序执行上不相邻。
在本申请的一种可能的实施方式中,所述第一设备和所述第二设备是存在主从关系的设备,或者所述第一设备和所述第二设备是两个独立而不存在主从关系的设备。
在本申请的一种可能的实施方式中,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤,包括以下任意一项:
在所述第一部分功能中的全部功能所对应的运行结果均满足预设验证效果要求时,对所述待部署应用进行转换;
在所述第一部分功能中的至少一个功能所对应的运行结果满足预设验证效果要求时,对所述待部署应用进行转换。
在本申请的一种可能的实施方式中,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤,包括:
若相应运行结果满足预设验证效果要求,根据调用的预设仿真接口的属性信息,对智能应用仿真程序进行分段,提取出开发者编写的代码段,以得到待部署应用的全部代码段,基于所述全部代码段,对所述待部署应用进行转换。
在本申请的一种可能的实施方式中,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤之前,包括:
基于预置API,获取待效果验证的拓展功能接口对应上一功能接口的输出以及对应下一功能接口的输入,其中,预置API可以获取待部署应用每个仿真接口的输入和输出;
根据对应上一功能接口的输出以及对应下一功能接口的输入,对需要拓展的功能接口进行效果验证。
在本申请的一种可能的实施方式中,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中的步骤,包括:
若相应运行结果满足预设验证效果要求,且确定第二设备可以部署第一语言开发的所述待部署应用,则将所述待部署应用中的部分代码块翻译为第二语言,并将转换后的所述待部署应用部署至所述第二设备中;
其中,所述部分代码块的目标计算比密度大于预设计算比密度,所述部分代码块的目标逻辑运算密度大于预设逻辑运算密度。
在本申请的一种可能的实施方式中,所述对所述待部署应用进行转换的步骤,包括以下任意一项:
将所述待部署应用的代码转换成抽象语法树,并基于预设DSL语言对所述抽象语法树进行描述,得到第二语言编写的应用;
通过预设大语言模型API,对所述待部署应用进行转换。
在本申请的一种可能的实施方式中,所述将转换后的所述待部署应用部署至所述第二设备中的步骤之后,包括:
对部署至第二设备中应用的不同功能进行验证,得到目标验证结果;
将目标验证结果与对应第一设备中的运行结果进行比对,并输出比对报告。
在本申请的一种可能的实施方式中,所述将目标验证结果与对应第一设备中的运行结果进行比对,并输出比对报告的步骤,包括:
将目标验证结果与对应第一设备中的运行结果进行比对,根据第二设备的资源情况,确定比对报告的输出明细;其中,所述输出明细包括预设仿真接口之间相应扩展代码对应在第二设备中的验证结果,与其在第一设备中的验证结果的一致性情况能,和/或者完整应用在第二设备中的验证结果,与其在第一设备中的验证结果的一致性情况,所述输出明细还包括第一设备上完成验证但是第二设备上不能完成验证的批量精度验证结果。
本申请还提供一种应用部署装置,应用于第一设备,所述方法包括:
第一确定模块,用于确定第一语言开发的待部署应用,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,并得到运行结果;
其中,所述预设仿真接口的功能与第二设备中相应接口的功能相同,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用;
部署模块,用于若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码。
本申请还提供一种应用部署设备,所述应用部署设备为实体节点设备,所述应用部署设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述应用部署方法的程序,所述应用部署方法的程序被处理器执行时可实现如上述所述应用部署方法的步骤。
为实现上述目的,还提供一种存储介质,所述存储介质上存储有应用部署程序,所述应用部署程序被处理器执行时实现上述任一所述的应用部署方法的步骤。
本申请提供一种应用部署方法、装置、设备及存储介质,与相关技术中解决python算法对应智能应用与嵌入式部署之间的部署间隙时,存在操作(人调试)复杂,导致应用门槛高,难以满足实际应用需求相比,在本申请中,确定第一语言开发的待部署应用,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,并得到运行结果;其中,所述预设仿真接口的功能与第二设备中相应接口的功能相同,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用;若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码。
可以理解,在本申请中,所述预设仿真接口的功能与第二设备中相应接口的功能相同,进而,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,即是可以在python环境(第一语言开发的环境)下完成部署效果(第二设备中运行待部署应用的效果)的确认(调试),而不是每次都需要在嵌入式部署中完成调试,且在本申请中,确认效果时,不只是只能输出整体的调试结果,而是基于仿真接口可以确认待部署应用的至少第一部分功能即对部分功能的效果进行调试,因而,相应待部署应用的功能可以不是固定的,对应功能组合的顺序可以不是固定的,进而,避免过于复杂的调试过程,另外,若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码,实现待部署应用的自动部署,即在本申请中,可以让开发者在第一设备的开发环境中使用仿真接口完成第二设备(嵌入式设备)上效果的仿真、调试和调优,确定效果后,生成可在嵌入式设备上部署的应用程序,避免每次需要在第二设备(嵌入式设备)上完成效果的仿真、调试和调优(由于存在部署间隙,每次都在第二设备上调试,会造成操作复杂,门槛高等),进而满足实际应用需求。需要说明的是,在本申请中,由于对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码,也即,可以将算法工程师熟悉的开发语言经过代码转换到嵌入式开发语言;在第二设备的硬件不支持Python的情况下,可以在嵌入式设备上运行相应应用(实际算法工程师以其熟悉的开发语言开发的应用),进而满足实际应用需求。
附图说明
图1为本申请应用部署方法的第一实施例的流程示意图;
图2为本申请应用部署方法第二实施例中的流程示意图;
图3为本申请应用部署方法第三实施例中的流程示意图;
图4为本申请实施例方案涉及的硬件运行环境的设备结构示意图;
图5为本申请中涉及的服务器和嵌入式设备的场景示意图;
图6为本申请中涉及的整体方案流程示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供一种应用部署方法,在本申请应用部署方法的一实施例中,参照图1,应用于第一设备,所述方法包括:
步骤S10,确定第一语言开发的待部署应用,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,并得到运行结果;
其中,所述预设仿真接口的功能与第二设备中相应接口的功能相同,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用;
在本实施例中,需要说明的是,应用部署方法的执行主体是第一设备,该第一设备具体可以是服务器,在该服务器中,开发人员以第一语言开发待部署应用。
其中,所述第一设备和所述第二设备是存在主从关系的设备,或者所述第一设备和所述第二设备是两个独立而不存在主从关系的设备。
可以理解的是,服务器和第二设备也可以共同设置在单个设备中,也可以是主芯片和从芯片的关系,如x86芯片+AISC芯片是主从芯片的关系。
可以理解的是,在本实施例中,需要将在服务器中开发好的待部署应用部署至第二设备中,该第二设备可以是嵌入式设备,以下以第二设备为嵌入式设备进行具体说明。
应理解的是,在该服务器中,开发人员以第一语言开发待部署应用,而开发人员习惯于使用python语言进行开发,进而,第一语言是python语言。
也即,在该服务器中,开发人员以python语言开发待部署应用。
可以理解的是,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用,第二设备常用的是C语言以及C++语言,并运行C语言以及C++语言开发的应用,其中,第二设备的接口也是以第二语言开发的。
具体地,在本实施例中,需要解决用python语言开发的待部署应用,如何部署至常用C语言以及C++语言运行程序的嵌入式设备。即需要解决python算法(基于python语言开发的智能应用)与嵌入式设备之间的部署间隙。
整体地,如图6所示,在本实施例中,开发人员在服务器端开发待部署应用后,先在服务器端利用仿真接口仿真在嵌入式设备上的部署情况,在仿真的效果满足要求之后,在将其部署至嵌入式设备上(还在嵌入式设备上确认部署效果),进而,提升部署效率,节约部署资源消耗。
在本实施例中,需要说明的是,若待部署应用已经开发好,则直接获取该第一语言开发的待部署应用所对应的预设仿真接口。
需要理解的是,该预设仿真接口可以不只是一个而是多个,且所述预设仿真接口的功能与第二设备中相应接口的功能相同。
具体地,若第二设备中相应接口具有数据处理功能,则预设仿真接口也具有数据处理功能,若第二设备中相应接口具有推理抽象功能,则预设仿真接口也具有推理抽象功能。
具体地,若要使得预设仿真接口的功能与第二设备中相应接口的功能相同,则需要先对相应接口的功能进行抽象。
其中,接口抽象包括但不限于:
a、深度学习模型推理接口抽象,具体地,包括:对专用处理器(基于深度学习的智能应用部署专用处理器)的推理能力进行抽象:如对NPU、DSP、ASIC等的推理能力进行抽象;
还包括:对通用处理器(基于深度学习的智能应用部署通用处理器)的推理能力进行抽象:如ARM(Advanced RISC Machines,一类处理器)、GPU(Graphics Processing Unit,图形处理器)等的推理能力进行抽象,具体地,b、数据处理接口抽象,对专用处理器等的数据处理能力进行抽象,如:对IVE、NUE等的数据处理能力进行抽象,对通用处理器等的数据处理能力进行抽象,如:ARM、GPU等的数据处理能力进行抽象。
其中,数据处理能力可以包括:图像缩放、抠图、去中心化、归一化、直方图统计等。
在本实施例中,在对接口或者接口功能进行抽象后,开发人员基于抽象的功能提供算法开发者(开发人员)熟悉语言的仿真接口,包括:深度学习模型推理API(基于抽象后的上述嵌入式设备中的深度学习模型推理接口生成)、数据处理API(包括预处理和后处理,基于抽象后的上述嵌入式设备中的数据处理接口生成)、效果验证API、嵌入式代码或应用生成API等。
以下阐述具体的仿真接口(预设仿真接口对相应芯片(多个)或者处理器(多个)的推理能力进行抽象得到,所述推理能力包括智能处理能力以及智能分析能力,所述处理器包括预设专用处理器或者预设通用处理器,所述预设仿真接口包括深度学习推理接口,其中,不同的芯片或处理器的接口是不一样的,所以需要抽象成统一的仿真接口,举例说明:在A类芯片上是用IVE硬核实现的,B类芯片是用NUE硬核实现的,没有硬核的芯片是ARM实现的,抽象后的仿真接口可以统一为:Resize2、仿真接口的能力包括:数据处理能力,如resize、归一化等,智能分析能力即模型推理能力)。具体地:
a、模型推理API,深度学习模型推理接口,与嵌入式设备端到端深度学习推理接口、参数、使用方式保持一致。该类API包括但不限于:创建接口、前向推理接口、资源释放接口。其中,深度学习模型推理接口为核心API,不可被替换。其中,该模型推理API将对应模型转换为嵌入式模型,或使用转换过程中的仿真专用文件(效果和运行在嵌入式设备中的模型一致),实现API运行结果与嵌入式设备运行的效果一致。
b、数据预处理API,推理数据预处理接口。包括但不限于:图片、视频、文字、语音数据的解码、缩放、归一化等处理接口,其功能与相应嵌入式设备中对应接口的参数、使用方式保持一致,且运行效果保持一致。
c、数据后处理API,深度学习模型推理结果后处理接口,包括但不限于:结果解析、叠框、叠掩码、叠文字、编码等处理接口,其功能与相应嵌入式设备中对应接口的参数、使用方式保持一致,且运行效果保持一致。
d、效果验证API,确认深度学习模型效果验证接口,包括但不限于:topk、mAP、mIOU、测试集接入等接口,其功能与相应嵌入式设备中对应接口的参数、使用方式保持一致,且运行效果保持一致。
e、嵌入式代码或应用生成API,其功能在于:基于仿真代码,生成嵌入式设备可编译的代码,供开发者参考,即生成嵌入式设备可执行的文件,供开发者验证效果。其中,仿真代码中有效果验证的会同步生成验证代码,以输出嵌入式设备效果验证报告。
以上API与第一设备端SDK有相同的接口。
在本实施例中,需要说明的是,上述阐述的是,怎么得到仿真接口的,而在仿真接口已经部署完成后,在本实施例中,使用部署完成的仿真接口。
具体地,在本实施例中,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,并得到运行结果。
举例说明,待部署应用是测试图片用的应用,该对应预设仿真接口包括图片的缩放处理接口,图片的叠加处理接口,图片叠加后的后处理接口,效果验证接口等。
则可以只是调用图片的缩放处理接口,图片的叠加处理接口等仿真接口,进而,得到运行结果。
或者调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的全部功能,并得到运行结果。
举例说明,待部署应用是测试图片用的应用,该对应预设仿真接口包括图片的缩放处理接口,图片的叠加处理接口,图片叠加后的后处理接口,效果验证接口等。
则可以调用全部仿真接口,进而运行,得到运行结果。
可以理解,在相关技术中,会采用可视化插件解决python算法对应智能应用与嵌入式部署之间的部署间隙,这在一定程度上降低了python算法对应智能应用在第二设备上部署的难度,然而可视化插件开发模式固定、灵活性差(例如,只能支持具有A+B+C等固定功能的应用部署的开发,且调试时,不能针对单个功能进行调试,而是输出整体的调试结果)。
在本实施例中,可以理解,由于所述预设仿真接口的功能与第二设备中相应接口的功能相同,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用,因而,基于对应仿真接口可以确定相应待部署应用部署在第二设备上后相应的运行效果是怎样的,且由于可以对仿真接口的先后仿真顺序进行调整,或者可以只使用单个仿真接口,进而,可以提升灵活性。
步骤S20,若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码。
在本实施例中,若相应运行结果满足预设验证效果要求(如:分类结果确认、检测框可视化验证等满足要求),在将待部署应用转换为可以在第二设备中运行的应用后,将所述待部署应用转换为第二语言编写(C语言或者C++语言)的应用,并将转换后的所述待部署应用部署至所述第二设备中,即需要强调的是,本实施例中,还实现代码的转换,而不只是应用的部署以及运行调整,进而,可以将算法工程师熟悉的开发语言经过代码转换到嵌入式开发语言;即在第二设备的硬件不支持Python的情况下,可以在嵌入式设备上运行相应应用(实际算法工程师以其熟悉的开发语言开发的应用),进而满足实际应用需求)。
若相应运行结果未满足预设验证效果要求,则需要对不满足预设验证效果要求的功能进行调整或者调优,然后才能转换并部署。
其中,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤,包括以下任意一项:
在所述第一部分功能中的全部功能所对应的运行结果均满足预设验证效果要求时,对所述待部署应用进行转换;
在所述第一部分功能中的至少一个功能所对应的运行结果满足预设验证效果要求时,对所述待部署应用进行转换。
在本实施例中,可以根据服务器端实际的资源情况以及实际的应严格情况,确定是否需要对所有的功能进行验证。
其中,在将转换后的所述待部署应用部署至所述第二设备中之后,还需要确定部署效果。
所述预设仿真接口为多个,预设仿真接口对相应多个芯片或者处理器的推理能力进行抽象得到,所述推理能力包括智能处理能力以及智能分析能力,所述处理器包括预设专用处理器或者预设通用处理器,所述预设仿真接口包括深度学习推理接口;
所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤之前,所述方法包括:
若检测到当前预设仿真接口与下一预设仿真接口在执行时序上不连贯时,则调用拓展的功能接口,并基于所述拓展的功能接口,运行所述待部署应用的相应功能,直至可以运行所述下一预设仿真接口,其中,相应开发人员通过所述拓展的功能接口开发所述待部署应用的至少第二部分功能,所述第一设备不存在第二部分功能对应的预设仿真接口。
可以理解,开发人员确定好的仿真接口不可能满足所有人员的开发需求,为了拓宽应用场景以及确保灵活性,在本实施例中,还可以提供拓展的功能接口,也即,为实现更高级别的性能优化,开发者可基于拓展的功能接口进行手动优化,实现相应的功能(其中,相应开发人员通过所述拓展的功能接口开发所述待部署应用的至少第二部分功能,所述第一设备不存在第二部分功能对应的预设仿真接口,此时才需要拓展的功能接口)。也即,算法开发者基于仿真接口直接完成智能应用编写并确认效果,或者开发者在python环境下还调用扩展的功能,以完成智能应用的编写。
应理解的是,开发者在上述接口基础上,可以用python代码扩展增加需要的功能,并可以封装成标准扩展接口(custom_API)进行注册,拓展的功能接口的特征包括但不限于:API名称(后续需要保持一致)、输入数据格式、参数、输出数据格式。
其中,拓展的功能接口是可选的(开发者注册的,或者自行优化后生成的)。
在本实施例中,由于待部署应用中的有些功能是基于拓展的功能接口实现的,此时,不同仿真接口之间是不连贯的,因而,在调用并运行相应仿真接口时,若检测到当前预设仿真接口与下一预设仿真接口在执行时序上不连贯时,则调用拓展的功能接口,并基于所述拓展的功能接口,运行所述待部署应用的相应功能,直至可以运行所述下一预设仿真接口。
可以理解,所述待部署应用使用深度学习模型接口实现其第三部分功能,所述深度学习模型接口可以是所述预设仿真接口,也可以是使用所述拓展的功能接口开发得到的接口,所述第三部分功能是所述第一部分功能中的部分或者是所述第二部分功能中的部分。
应理解的是,如图5所示,待部署应用可以使用深度学习模型表征其第三部分功能,如图片处理功能。该对应的深度学习模型所实现的功能是可以基于预设仿真接口实现,也可以是基于拓展的功能接口实现。
具体地,所述待部署应用使用不同的深度学习模型表征其不同功能,所述不同的深度学习模型对应功能可以在时序执行上相邻,或者可以在时序执行上不相邻。
也即,可以通过拓展的功能接口实现一个深度学习模型的应用编写,也可以是多个深度学习模型串联的应用编写。
可以理解的是,多个深度学习模型串联的应用编写还可以使用上述过程中提供的预设仿真接口API。
可以理解,在本申请中,所述预设仿真接口的功能与第二设备中相应接口的功能相同,进而,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,即是可以在python环境(第一语言开发的环境)下完成部署效果(第二设备中运行待部署应用的效果)的确认(调试),而不是每次都需要在嵌入式部署中完成调试,且在本申请中,确认效果时,不只是只能输出整体的调试结果,而是基于仿真接口可以确认待部署应用的至少第一部分功能即对部分功能的效果进行调试,因而,相应待部署应用的功能可以不是固定的,对应功能组合的顺序可以不是固定的,进而,避免过于复杂的调试过程,另外,若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码,实现待部署应用的自动部署,即在本申请中,可以让开发者在第一设备的开发环境中使用仿真接口完成第二设备(嵌入式设备)上效果的仿真、调试和调优,确定效果后,生成可在嵌入式设备上部署的应用程序,避免每次需要在第二设备(嵌入式设备)上完成效果的仿真、调试和调优(由于存在部署间隙,每次都在第二设备上调试,会造成操作复杂,门槛高等),进而满足实际应用需求。需要说明的是,在本申请中,由于对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码,也即,可以将算法工程师熟悉的开发语言经过代码转换到嵌入式开发语言;在第二设备的硬件不支持Python的情况下,可以在嵌入式设备上运行相应应用(实际算法工程师以其熟悉的开发语言开发的应用),进而满足实际应用需求。
进一步地,参照图2,基于本申请中第一实施例,提供本申请的另一实施例,在该实施例中,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤之前,包括:
步骤S01,基于预置API,获取待效果验证的拓展功能接口对应上一功能接口的输出以及对应下一功能接口的输入,其中,预置API可以获取待部署应用每个仿真接口的输入和输出;
可以理解,在本实施例中,还设置有预置API,该预置API可以获取待部署应用每个仿真接口的输入和输出。
例如,待部署应用调用预处理仿真接口,推理仿真接口,则可以获取预处理仿真接口的输入以及输出,并获取推理仿真接口的输入以及输出。
由于基于预置API可以获取每个仿真接口的输入和输出,而拓展功能接口与很显然会与仿真接口关联,因而,可以获取待效果验证的拓展功能接口对应上一功能接口的输出以及对应下一功能接口的输入。
步骤S02,根据对应上一功能接口的输出以及对应下一功能接口的输入,对需要拓展的功能接口进行效果验证。
在本实施例中,由于获取对应上一功能接口的输出以及对应下一功能接口的输入,因而,可以直接对需要拓展的功能接口进行效果验证。
也即,在本实施例中,可以不需要从最开始进行验证,进而,提升验证效率,尤其是针对不同版本的待部署应用(只是拓展的功能接口不同)。
其中,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤,包括:
若相应运行结果满足预设验证效果要求,根据调用的预设仿真接口的属性信息,对智能应用仿真程序进行分段,提取出开发者编写的代码段,以得到待部署应用的全部代码段,基于所述全部代码段,对所述待部署应用进行转换。
可以理解,在本实施例中,若需要对所述待部署应用进行转换,则需要获取待部署应用对应的全部代码段,其中的难点在于如何获取基于拓展的功能接口所实现的开发者编写的代码段。
在本实施例中,预置API可以将仿真应用代码分段,进而,根据调用的预设仿真接口的属性信息,可以从中提取出开发者编写的代码段,进而开发者编写的代码段,可以实现获取全部代码段,在获取全部代码段后,调用代码生成接口,对所述待部署应用进行转换。
其中,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中的步骤,包括:
若相应运行结果满足预设验证效果要求,且确定第二设备可以部署第一语言开发的所述待部署应用,则将所述待部署应用中的部分代码块翻译为第二语言,并将转换后的所述待部署应用部署至所述第二设备中;
其中,所述部分代码块的目标计算比密度大于预设计算比密度,所述部分代码块的目标逻辑运算密度大于预设逻辑运算密度。
在本实施例中,需要说明的是,部分嵌入式设备是可以支持python语言开发的,但嵌入式设备支持python还不够成熟,很多python包无法支持,遇到可以支持python语言开发的嵌入式设备,在本实施例中,为了提升效率,还是可以将所述待部署应用中的部分代码块翻译为第二语言,并将转换后的所述待部署应用部署至所述第二设备中,即可以将计算比密集和逻辑密集的代码块翻译为嵌入式代码,进而完成智能应用生成。也即,所述部分代码块的目标计算比密度大于预设计算比密度,所述部分代码块的目标逻辑运算密度大于预设逻辑运算密度。
其中,所述对所述待部署应用进行转换的步骤,包括以下任意一项:
将所述待部署应用的代码转换成抽象语法树,并基于预设DSL语言对所述抽象语法树进行描述,得到第二语言编写的应用;
通过预设大语言模型API,对所述待部署应用进行转换。
在本实施例中,阐述如何将待部署应用转换为第二语言编写的应用。
也即,一般地,代码生成接口会将提取的python翻译成嵌入式代码,代码翻译方法包括但不限于:
a、将代码转换成抽象语法树,简化后,用领域特定语言(DSL)进行描述(匹配的方式),基于DSL生成嵌入式执行代码。
b、应用大语言模型API,完成提取代码的翻译。
在本实施例中,通过若相应运行结果满足预设验证效果要求,进而实现对所述待部署应用进行转换。
进一步地,参照图3,基于本申请中第一实施例,提供本申请的另一实施例,在该实施例中,所述将转换后的所述待部署应用部署至所述第二设备中的步骤之后,包括:
步骤S30,对部署至第二设备中应用的不同功能进行验证,得到目标验证结果;
在本实施例中,在将应用部署至第二设备中后,并不确定是否部署成过,还需要对部署至第二设备中应用的不同功能进行验证,得到目标验证结果。
步骤S40,将目标验证结果与对应第一设备中的运行结果进行比对,并输出比对报告。
在本实施例中,将目标验证结果与对应第一设备中的运行结果进行比对,并输出比对报告,并发送给开发人员确认。
所述将目标验证结果与对应第一设备中的运行结果进行比对,并输出比对报告的步骤,包括:
将目标验证结果与对应第一设备中的运行结果进行比对,根据第二设备的资源情况,确定比对报告的输出明细;其中,所述输出明细包括预设仿真接口之间相应扩展代码对应在第二设备中的验证结果,与其在第一设备中的验证结果的一致性情况能,和/或者完整应用在第二设备中的验证结果,与其在第一设备中的验证结果的一致性情况,所述输出明细还包括第一设备上完成验证但是第二设备上不能完成验证的批量精度验证结果。
可以理解,在本实施例中,在第二设备上,还确定预设仿真接口之间的扩展代码在第二设备中所对应生成的结果(使用C语言或者C++描述的扩展代码),然后对C语言或者C++描述的扩展代码的功能进行验证,将其与之前在第一设备中已经验证的结果进行比对,确定两者是否一致,也即,在本实施例中,确定扩展代码在第二设备中的验证结果与其在第二设备中的验证结果是否一致,同样地,在本实施例中,还确定完整应用在第二设备中所对应生成的结果(使用C语言或者C++描述的扩展代码),然后对完整应用的功能进行验证,将其与之前在第一设备中已经验证的结果进行比对,确定两者是否一致,也即,在本实施例中,确定完整应用在第二设备中的验证结果,与其在第一设备中的验证结果的一致性情况。
具体地,在本实施例中,基于在第二设备运行所生成的应用(部分功能或者全部功能),读取与第一设备端相同的测试数据,并将相应结果进行对比,确认相应应用在第二设备上的应用效果,该应用效果包括:二进制一致、余弦相似度、批量精度与仿真结果的差值±2%等。
另外,在本实施例中,所述输出明细还包括第一设备上完成验证但是第二设备上不能完成验证的批量精度验证结果,可以理解,如果嵌入式设备资源有限,批量精度验证的代码(基于与运行结果代码进行比对后得到的)可以控制不输出。即第二设备可以直接读取对应仿真代码,完成设备端效果确认。
例如,若存在大量的数据如几万张的图片,此时,可以不在第二设备上进行批量验证,直接读取在第一设备上的该大量的数据的验证效果,以完成验证并输出报告。
在本实施例中,输出报告:包括但不限于:测试数据展示,应用部署效果展示等。
可以理解,在本实施例火葬,还输出对应的比对报告,便于后续查询或者改进。
参照图4,图4是本申请实施例方案涉及的硬件运行环境的设备结构示意图。
如图4所示,该应用部署设备可以包括:处理器1001,存储器1005,通信总线1002。通信总线1002用于实现处理器1001和存储器1005之间的连接通信。
可选地,该应用部署设备还可以包括用户接口、网络接口、摄像头、RF(RadioFrequency,射频)电路,传感器、WiFi模块等等。用户接口可以包括显示屏(Display)、输入子模块比如键盘(Keyboard),可选用户接口还可以包括标准的有线接口、无线接口。网络接口可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图4中示出的应用部署设备结构并不构成对应用部署设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图4所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块以及应用部署程序。操作系统是管理和控制应用部署设备硬件和软件资源的程序,支持应用部署程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各摄像机之间的通信,以及与设备中其它硬件和软件之间通信。
在图4所示的应用部署设备中,处理器1001用于执行存储器1005中存储的应用部署程序,实现上述任一项所述的应用部署方法的步骤。
本申请应用部署设备具体实施方式与上述应用部署方法各实施例基本相同,在此不再赘述。
本申请还提供一种应用部署装置,所述装置包括:
第一确定模块,用于确定第一语言开发的待部署应用,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,并得到运行结果;
其中,所述预设仿真接口的功能与第二设备中相应接口的功能相同,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用;
部署模块,用于若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码。
在本申请的一种可能的实施方式中,所述预设仿真接口为多个预设仿真接口对相应多个芯片或者处理器的推理能力进行抽象得到,所述推理能力包括智能处理能力以及智能分析能力,所述处理器包括预设专用处理器或者预设通用处理器,所述预设仿真接口包括深度学习推理接口;
所述应用部署装置用于实现:
若检测到当前预设仿真接口与下一预设仿真接口在执行时序上不连贯时,则调用拓展的功能接口,并基于所述拓展的功能接口,运行所述待部署应用的相应功能,直至可以运行所述下一预设仿真接口,其中,相应开发人员通过所述拓展的功能接口开发所述待部署应用的至少第二部分功能,所述第一设备不存在第二部分功能对应的预设仿真接口。
本申请还提供一种应用部署方法,所述待部署应用使用深度学习模型接口实现其第三部分功能,所述深度学习模型接口可以是所述预设仿真接口,也可以是使用所述拓展的功能接口开发得到的接口,所述第三部分功能是所述第一部分功能中的部分或者是所述第二部分功能中的部分。
在本申请的一种可能的实施方式中,所述待部署应用使用不同的深度学习模型表征其不同功能,所述不同的深度学习模型对应功能可以在时序执行上相邻,或者可以在时序执行上不相邻。
在本申请的一种可能的实施方式中,所述第一设备和所述第二设备是存在主从关系的设备,或者所述第一设备和所述第二设备是两个独立而不存在主从关系的设备。
在本申请的一种可能的实施方式中,所述应用部署装置用于实现以下任意一项:
在所述第一部分功能中的全部功能所对应的运行结果均满足预设验证效果要求时,对所述待部署应用进行转换;
在所述第一部分功能中的至少一个功能所对应的运行结果满足预设验证效果要求时,对所述待部署应用进行转换。
在本申请的一种可能的实施方式中,所述应用部署装置用于实现:
若相应运行结果满足预设验证效果要求,根据调用的预设仿真接口的属性信息,对智能应用仿真程序进行分段,提取出开发者编写的代码段,以得到待部署应用的全部代码段,基于所述全部代码段,对所述待部署应用进行转换。
在本申请的一种可能的实施方式中,所述应用部署装置用于实现:
基于预置API,获取待效果验证的拓展功能接口对应上一功能接口的输出以及对应下一功能接口的输入,其中,预置API可以获取待部署应用每个仿真接口的输入和输出;
根据对应上一功能接口的输出以及对应下一功能接口的输入,对需要拓展的功能接口进行效果验证。
在本申请的一种可能的实施方式中,所述应用部署装置用于实现:
若相应运行结果满足预设验证效果要求,且确定第二设备可以部署第一语言开发的所述待部署应用,则将所述待部署应用中的部分代码块翻译为第二语言,并将转换后的所述待部署应用部署至所述第二设备中;
其中,所述部分代码块的目标计算比密度大于预设计算比密度,所述部分代码块的目标逻辑运算密度大于预设逻辑运算密度。
在本申请的一种可能的实施方式中,所述应用部署装置用于实现以下任意一项:
将所述待部署应用的代码转换成抽象语法树,并基于预设DSL语言对所述抽象语法树进行描述,得到第二语言编写的应用;
通过预设大语言模型API,对所述待部署应用进行转换。
在本申请的一种可能的实施方式中,所述应用部署装置用于实现:
对部署至第二设备中应用的不同功能进行验证,得到目标验证结果;
将目标验证结果与对应第一设备中的运行结果进行比对,并输出比对报告。
在本申请的一种可能的实施方式中,所述应用部署装置用于实现:
将目标验证结果与对应第一设备中的运行结果进行比对,根据第二设备的资源情况,确定比对报告的输出明细;其中,所述输出明细包括预设仿真接口之间相应扩展代码对应在第二设备中的验证结果,与其在第一设备中的验证结果的一致性情况能,和/或者完整应用在第二设备中的验证结果,与其在第一设备中的验证结果的一致性情况,所述输出明细还包括第一设备上完成验证但是第二设备上不能完成验证的批量精度验证结果。
本申请应用部署装置的具体实施方式与上述应用部署方法各实施例基本相同,在此不再赘述。
本申请实施例提供了一种存储介质,且所述存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的应用部署方法的步骤。
本申请存储介质具体实施方式与上述应用部署方法各实施例基本相同,在此不再赘述。
本申请还提供一种计算机程序产品、包括计算机程序,该计算机程序被处理器执行时实现上述的应用部署方法的步骤。
本申请计算机程序产品的具体实施方式与上述应用部署方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加硬件平台的方式来实现,也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (15)
1.一种应用部署方法,其特征在于,应用于第一设备,所述方法包括:
确定第一语言开发的待部署应用,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,并得到运行结果;
其中,所述预设仿真接口的功能与第二设备中相应接口的功能相同,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用;
若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码。
2.如权利要求1所述的应用部署方法,其特征在于,所述预设仿真接口为多个,预设仿真接口对相应多个芯片或者处理器的推理能力进行抽象得到,所述处理器包括预设专用处理器或者预设通用处理器,所述预设仿真接口包括深度学习推理接口;
所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤之前,所述方法包括:
若检测到当前预设仿真接口与下一预设仿真接口在执行时序上不连贯时,则调用拓展的功能接口,并基于所述拓展的功能接口,运行所述待部署应用的相应功能,直至可以运行所述下一预设仿真接口,其中,相应开发人员通过所述拓展的功能接口开发所述待部署应用的至少第二部分功能,所述第一设备不存在第二部分功能对应的预设仿真接口。
3.如权利要求2所述的应用部署方法,其特征在于,所述待部署应用使用深度学习模型接口实现其第三部分功能,所述深度学习模型接口可以是所述预设仿真接口,也可以是使用所述拓展的功能接口开发得到的接口,所述第三部分功能是所述第一部分功能中的部分或者是所述第二部分功能中的部分。
4.如权利要求3所述的应用部署方法,其特征在于,所述待部署应用使用不同的深度学习模型表征其不同功能,所述不同的深度学习模型对应功能可以在时序执行上相邻,或者可以在时序执行上不相邻。
5.如权利要求1所述的应用部署方法,其特征在于,所述第一设备和所述第二设备是存在主从关系的设备,或者所述第一设备和所述第二设备是两个独立而不存在主从关系的设备。
6.如权利要求1所述的应用部署方法,其特征在于,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤,包括以下任意一项:
在所述第一部分功能中的全部功能所对应的运行结果均满足预设验证效果要求时,对所述待部署应用进行转换;
在所述第一部分功能中的至少一个功能所对应的运行结果满足预设验证效果要求时,对所述待部署应用进行转换。
7.如权利要求1所述的应用部署方法,其特征在于,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤,包括:
若相应运行结果满足预设验证效果要求,根据调用的预设仿真接口的属性信息,对智能应用仿真程序进行分段,提取出开发者编写的代码段,以得到待部署应用的全部代码段,基于所述全部代码段,对所述待部署应用进行转换。
8.如权利要求1所述的应用部署方法,其特征在于,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换的步骤之前,包括:
基于预置API,获取待效果验证的拓展功能接口对应上一功能接口的输出以及对应下一功能接口的输入,其中,预置API可以获取待部署应用每个仿真接口的输入和输出;
根据对应上一功能接口的输出以及对应下一功能接口的输入,对需要拓展的功能接口进行效果验证。
9.如权利要求1所述的应用部署方法,其特征在于,所述若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中的步骤,包括:
若相应运行结果满足预设验证效果要求,且确定第二设备可以部署第一语言开发的所述待部署应用,则将所述待部署应用中的部分代码块翻译为第二语言,并将转换后的所述待部署应用部署至所述第二设备中;
其中,所述部分代码块的目标计算比密度大于预设计算比密度,所述部分代码块的目标逻辑运算密度大于预设逻辑运算密度。
10.如权利要求1所述的应用部署方法,其特征在于,所述对所述待部署应用进行转换的步骤,包括以下任意一项:
将所述待部署应用的代码转换成抽象语法树,并基于预设DSL语言对所述抽象语法树进行描述,得到第二语言编写的应用;
通过预设大语言模型API,对所述待部署应用进行转换。
11.如权利要求2所述的应用部署方法,其特征在于,所述将转换后的所述待部署应用部署至所述第二设备中的步骤之后,包括:
对部署至第二设备中应用的不同功能进行验证,得到目标验证结果;
将目标验证结果与对应第一设备中的运行结果进行比对,并输出比对报告。
12.如权利要求11所述的应用部署方法,其特征在于,所述将目标验证结果与对应第一设备中的运行结果进行比对,并输出比对报告的步骤,包括:将目标验证结果与对应第一设备中的运行结果进行比对,根据第二设备的资源情况,确定比对报告的输出明细;其中,所述输出明细包括预设仿真接口之间相应扩展代码对应在第二设备中的验证结果,与其在第一设备中的验证结果的一致性情况能,和/或者完整应用在第二设备中的验证结果,与其在第一设备中的验证结果的一致性情况,所述输出明细还包括第一设备上完成验证但是第二设备上不能完成验证的验证结果。
13.一种应用部署装置,其特征在于,应用于第一设备,所述装置包括:
第一确定模块,用于确定第一语言开发的待部署应用,调用以第一语言开发的对应预设仿真接口,运行所述待部署应用的至少第一部分功能,并得到运行结果;
其中,所述预设仿真接口的功能与第二设备中相应接口的功能相同,所述第二设备中运行基于相应第二语言开发的接口运行以第二语言开发的应用;
部署模块,用于若相应运行结果满足预设验证效果要求,对所述待部署应用进行转换,并将转换后的所述待部署应用部署至所述第二设备中,其中,对所述待部署应用进行转换包括将待部署应用转换为可以在第二设备中运行的应用以及将该应用的代码转变为第二语言编写的代码。
14.一种应用部署设备,其特征在于,包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的应用部署程序,所述处理器执行所述应用部署程序时实现权利要求1至12中任一项所述的应用部署方法的步骤。
15.一种存储介质,其特征在于,所述存储介质上存储有应用部署程序,所述应用部署程序被处理器执行时实现如权利要求1至12中任一项所述的应用部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311789189.2A CN117762426A (zh) | 2023-12-22 | 2023-12-22 | 应用部署方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311789189.2A CN117762426A (zh) | 2023-12-22 | 2023-12-22 | 应用部署方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117762426A true CN117762426A (zh) | 2024-03-26 |
Family
ID=90319487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311789189.2A Pending CN117762426A (zh) | 2023-12-22 | 2023-12-22 | 应用部署方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762426A (zh) |
-
2023
- 2023-12-22 CN CN202311789189.2A patent/CN117762426A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111178512B (zh) | 器件运行神经网络的测试方法及装置 | |
CN112685035A (zh) | 项目开发方法及装置、计算机可读存储介质、电子设备 | |
CN110262783B (zh) | 一种接口生成方法、装置及终端设备 | |
US10387124B2 (en) | System and method for creating domain specific language | |
CN109325900A (zh) | 一种算法的部署方法和系统 | |
CN113268243B (zh) | 内存预测方法及装置、存储介质、电子设备 | |
CN113269319B (zh) | 深度学习模型的调优方法、编译方法及计算装置 | |
CN111026368B (zh) | 基于Python插件生成方法、装置、设备及存储介质 | |
CN113139650B (zh) | 深度学习模型的调优方法和计算装置 | |
CN110503644B (zh) | 基于移动平台的缺陷检测实现方法、缺陷检测方法及相关设备 | |
CN115658042A (zh) | 混合应用组件式开发方法、系统、设备及存储介质 | |
CN117762426A (zh) | 应用部署方法、装置、设备及存储介质 | |
CN114637514A (zh) | Sdk的编译方法、装置、终端及存储介质 | |
CN113885889A (zh) | 一种用于量化模型部署的方法、系统、存储介质及设备 | |
CN111367512B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN109766089B (zh) | 基于动图的代码生成方法、装置、电子设备及存储介质 | |
CN118377493A (zh) | 模型的部署方法、电子设备及存储介质 | |
EP4270298A1 (en) | Enhanced computer vision application programming interface | |
CN113391795A (zh) | 一种应用场景和软件开发包自适应映射的实现方法和系统 | |
CN114169525B (zh) | 推理框架的调用方法和调用装置 | |
CN113971019B (zh) | 数据类型创建方法、装置、服务器及介质 | |
CN115409193B (zh) | 量子程序的生成方法、装置、介质及量子计算机操作系统 | |
CN118245048A (zh) | 基于Flutter框架的组件形成Flutter页面的方法、系统和电子设备 | |
CN114756183A (zh) | 数据打印方法、装置、设备及存储介质 | |
CN115437627A (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 |