CN111897660A - 模型部署方法、模型部署装置及终端设备 - Google Patents
模型部署方法、模型部署装置及终端设备 Download PDFInfo
- Publication number
- CN111897660A CN111897660A CN202011050556.3A CN202011050556A CN111897660A CN 111897660 A CN111897660 A CN 111897660A CN 202011050556 A CN202011050556 A CN 202011050556A CN 111897660 A CN111897660 A CN 111897660A
- Authority
- CN
- China
- Prior art keywords
- deployed
- model
- deployment
- information
- input object
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Stored Programmes (AREA)
Abstract
本申请适用于模型部署领域,提供了模型部署方法、模型部署装置及终端设备,其中,一种模型部署方法,包括:根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块;根据各个所述待部署模块,生成部署文件,其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息;将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型。通过本申请实施例能够将算法模型高效部署至芯片中。
Description
技术领域
本申请属于模型部署技术领域,尤其涉及模型部署方法、模型部署装置及终端设备。
背景技术
随着人工智能的不断进步,发展出了各类机器学习模型等算法模型。而由于目前的各个算法模型所涉及的数据量往往较大,模型较为复杂,因此,将机器学习模型部署到芯片上以进行应用时的部署难度较大,部署过程较为复杂,部署时对芯片的计算资源消耗较大。
可见,亟需一种能够将算法模型高效部署至芯片中的方法。
发明内容
有鉴于此,本申请实施例提供了模型部署方法、模型部署装置及终端设备,可以将算法模型高效部署至芯片中。
本申请实施例的第一方面提供了一种模型部署方法,包括:
根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块;
根据各个所述待部署模块,生成部署文件,其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息;
将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型。
本申请实施例的第二方面提供了一种模型部署装置,包括:
划分单元,用于根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块;
生成单元,用于根据各个所述待部署模块,生成部署文件,其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息;
发送单元,用于将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型。
本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,使得终端设备实现如模型部署方法所述的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得终端设备实现如模型部署方法所述的步骤。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如第一方面中所述的模型部署方法。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,可以根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块,以将所述待部署模型进行拆分,此时,相较于所述待部署模型,单个待部署模块的数据量较为合理,以便于后续获取部署信息;然后,根据各个所述待部署模块,生成部署文件,再将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型;其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息,因此,所述指定芯片可以根据所述部署文件分别对各个待部署模块进行部署,此时,由于相较于所述待部署模型,单个待部署模块的数据量较为合理,在部署过程中也可以更合理更高效地应用所述指定芯片的信息处理资源,从而能够将相应的算法模型高效部署至芯片中。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的第一种模型部署方法的实现流程示意图;
图2是本申请实施例提供的第二种模型部署方法的实现流程示意图;
图3是本申请实施例提供的第三种模型部署方法的实现流程示意图;
图4是本申请实施例提供的第四种模型部署方法的实现流程示意图;
图5是本申请实施例提供的一种模型部署装置的示意图;
图6是本申请实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例一:
图1示出了本申请实施例提供的第一种模型部署方法的流程示意图,其中,该模型部署方法可以应用于终端设备。
其中,所述终端设备可以为服务器、台式电脑、手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
所述终端设备可以与指定芯片建立通信连接并进行信息传输。其中,所述指定芯片中能够部署诸如机器学习模型等特定的算法模型。在一些示例中,所述指定芯片可以为人工智能(Artificial Intelligence,AI)芯片。所述指定芯片中可以包括神经网络处理器(Neural Network Processor,NNP)和数字信号处理器(Digital Signal Processing,DSP),其中,所述NNP可以用于执行线性运算,所述DSP单元可以用于执行非线性运算。当然,所述指定芯片也可以具体场景设置为其他结构。
所述通信连接的类型可以有多种,例如,所述通信连接可以为蓝牙连接、Wi-Fi连接等无线连接,或者所述通信连接也可以为有线连接。
示例性的,所述终端设备可以与指定芯片之间可以建立基于远程调用(RemoteProcedure Call ,RPC)协议进行信息传输,使得所述终端设备能够通过函数调用的形式调用所述指定芯片上的函数,从而可以通过所述终端设备调用所述指定芯片上的功能以及获取到调用结果,以实现对所述指定芯片上的功能的验证。
如图1所示,所述模型部署方法包括:
步骤S101,根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块。
本申请实施例中,所述待部署模型的类型可以有多种。示例性的,所述待部署模型可以包括机器学习模型中的分类模型、检测模型等等。所述分类模型可以用于识别诸如图像或者文本等输入项的类别,所述检测模型可以用于检测输入项中的目标物体的位置等。此外,所述待部署模型也可以为其他算法,例如可以为传统算法或者为传统算法与机器学习模型的结合等等。
示例性的,所述属性信息可以包括信息传输方式、运算类型信息以及数据量信息等。其中,所述信息传输方式可以指示相应的层的信息传输方式为串行传输或者并行传输,或者既包括串行传输又包括并行传输。因此,根据所述信息传输方式划分得到的待部署模块可以根据相应的信息传输方式确定部署形式;例如,对于多个相互能够并行处理的所述待部署模块,在所述指定芯片中进行部署时,可以将该多个相互能够并行处理的所述待部署模块一一对应地部署至所述指定芯片中能够并行处理的多个数据处理资源中。所述运算类型信息可以用于指示相应的层包括线性运算或者非线性运算。所述数据量信息可以反映对应的层所涉及的计算量,从而反映对应的层的运算时间的长短,因此,可以参考所述数据量进行分配计算资源。
本申请实施例中,所述待部署模型可以包括至少两个层,并且,每个层用于对输入执行特定的处理操作。示例性的,若所述待部署模型包括卷积神经网络模型,则所述待部署模型中可以包括卷积层、池化层、激活层以及全连接层中的至少一种。而若所述待部署模型包括传统算法,可以根据所述传统算法中的数据处理操作的功能、涉及的函数类型以及数据处理过程等信息对所述待部署模型进行分层。
本申请实施例中,可以通过根据所述属性信息对所述待部署模型进行划分,从而将属性相同或者相似的层划分至同一个待部署模块,从而可以便于在后续统一分配到匹配的数据处理资源;或者,也可以将能够并行处理的不同层划分至不同的待部署模块,从而可以在后续将这些不同的待部署模块部署到能够并行执行的不同数据处理资源中,以进行并行处理,从而在指定芯片中运行部署后的待部署模型时,能够提升数据处理效率;同时,相比于所述待部署模型,单个待部署模块的数据量较小,因此,在后续处理过程中,分别针对待部署模块进行部署和处理时相关资源的压力小于针对整个所述待部署模型进行部署和处理时的压力,从而也可以进一步的提升部署和处理的效率。
在一些实施例中,在根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块之前,还包括:
获取原始模型,其中,所述原始模型中应用有浮点数;
对所述原始模型执行定点化操作,获得所述待部署模型。
在所述原始模型中,可以应用有浮点数,例如应用有double类型的数据等等。而指定芯片上只能应用以bit形式表示的数据,即二进制数据,因此,可以在将所述待部署模型部署至指定芯片之前,执行浮点数定点化的操作,即所述定点化操作。执行所述定点化操作的具体方式可以根据现有的模块以及函数等来实现。
本申请实施例中,所述原始模型可以为在预设模型框架中开发得到的模型。示例性的,所述预设模型框架可以为MXNet、Caffe、TensorFlow等模型开发框架。通过对原始模型执行定点化操作,可以获得所述待部署模型,然后再执行根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块的操作及后续操作,以使得后续所述指定芯片根据所述部署文件部署得到的模型即为能够被所述指定芯片运行的模型。
在实际应用中,相比于所述原始模型,通过定点化操作获得的所述待部署模型在运行过程中可能会略掉计算过程中的一些小数的信息,从而相比于所述原始模型产生了精度损失,因此,可以在所述指定芯片完成对所述待部署模型的部署之后,检测部署完成的所述待部署模型相对于原始模型的精度变化,以验证部署完成的所述待部署模型的性能。
步骤S102,根据各个所述待部署模块,生成部署文件,其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息。
本申请实施例中,所述部署文件可以用于指示分别对各个待部署模块进行部署。其中,示例性的,所述部署信息中可以包括每一个待部署模块的结构参数信息、存储大小信息、存储地址信息、部署位置信息以及执行时的机器码等信息中的至少一个。所述部署文件的具体形式可以有多种。例如,所述部署文件可以为一个文件,也可以包括两个以上文件。
在一些实施例中,所述属性信息包括运算类型信息,所述运算类型信息指示相应的层用于执行线性运算或者用于执行非线性运算;所述部署文件的部署信息中,包括根据所述运算类型信息确定的各个待部署模块所分别对应的部署位置,任一所述待部署模块的部署位置为数字信号处理器或者神经网络处理器。
本申请实施例中,所述属性信息可以包括运算类型信息,此时,可以根据各个层的运算类型将所述待部署模型进行划分,并且根据对应的运算类型,可以确定划分得到的各个待部署模块的部署位置为数字信号处理器或者神经网络处理器。
示例性的,若所述待部署模型为机器学习模型,并且,所述待部署模型中可以包括卷积层、激活层和池化层,则可以将所述待部署模型中的单个卷积层或者多个连续的卷积层划分至一个待部署模块A中,并且,由于卷积层涉及线性运算,因此,该待部署模块A的部署位置为所述指定芯片中的神经网络处理器;而由于所述激活层涉及非线性运算,因此,所述激活层可以划分至待部署模块B中,并且,该待部署模块B的部署位置为所述指定芯片中的数字信号处理器。
需要说明的是,本申请实施例中,可以将运算类型相同的层划分至同一个待部署模块中,也可以根据各个层在所述待部署模型中的层级顺序,对各个层进行划分。例如,若根据预设层级顺序,所述待部署模型包括卷积层A、卷积层B、激活层C、卷积层D以及激活层E,则所述待部署模型可以划分得到包括卷积层A和卷积层B的待部署模块C’、包括激活层C的待部署模块D’、包括卷积层D的待部署模块E’和包括激活层E的待部署模块F’。
本申请实施例中,可以根据各个层的运算类型将所述待部署模型进行划分,并且根据对应的运算类型,可以确定划分得到的各个待部署模块的部署位置为所述指定芯片中的数字信号处理器或者所述指定芯片中的神经网络处理器,以使得后续部署过程中,指定芯片能够根据所述部署文件快速确定所述待部署模块的部署位置并进行部署,从而提升了模型部署的速度。
在一些实施例中,所述属性信息包括信息传输方式信息,所述信息传输方式信息用于指示对应的层的信息传输方式包括并行传输和/或串行传输,所述部署文件的部署信息中,包括各个待部署模块所分别对应的数据处理资源,每一个待部署模块所对应的数据处理资源根据所述待部署模块中的层的信息传输方式确定。
所述信息传输方式信息可以指示相应的层的信息传输方式为串行传输或者并行传输,或者既包括串行传输又包括并行传输。因此,根据所述信息传输方式划分得到的待部署模块可以根据相应的信息传输方式确定部署形式;例如,对于多个相互能够并行处理的所述待部署模块,在所述指定芯片中进行部署时,可以将该多个相互能够并行处理的所述待部署模块一一对应地部署至所述指定芯片中能够并行处理的多个数据处理资源中。而对于需要串行处理的多个待部署模块,可以将该串行处理的多个待部署模块部署至同一个数据处理资源中。
本申请实施例中,根据各个层的所述信息传输方式信息将所述待部署模型进行划分,可以使得后续部署过程中,指定芯片能够根据各个待部署模块之间的信息传输方式,将各个待部署模块合理部署至特定的数据处理资源中,使得部署完成的所述待部署模型在运行的时候,能够合理利用各个数据处理资源执行所述待部署模型中的各个层的数据处理操作,从而提升了部署完成的所述待部署模型的运行速度。
在一些实施例中,所述属性信息包括数据量信息,其中,所述信息传输方式信息用于指示对应的层所涉及的数据量,所述部署文件的部署信息中,包括根据所述数据量信息确定的各个待部署模块所分别对应的计算资源,每一个待部署模块所对应的所述计算资源根据所述待部署模块中的层的数据量信息确定。
本申请实施例中,所述数据量信息可以反映对应的层所涉及的计算量,从而反映对应的层的运算时间的长短,因此,可以参考所述数据量信息进行分配计算资源,以提升部署完成的所述待部署模型的运行速度。
在一些实施例中,所述部署文件包括第一文件和第二文件,其中,所述第一文件包括所述待部署模型的设置参数信息,所述第二文件包括根据各个所述待部署模块在所述待部署模型中的结构顺序,依次存储的各个待部署模块的模块部署信息。
本申请实施例中,示例性的,所述设置参数信息可以根据对所述待部署模型的训练等方式得到。在一些示例中,所述设置参数信息可以包括所述待部署模型中的卷积层的权重信息以及各个卷积核的向量信息等等。
所述第二文件中,可以根据各个所述待部署模块在所述待部署模型中的结构顺序,依次存储的各个待部署模块的模块部署信息。示例性的,在所述待部署模型中,各个所述待部署模块的结构顺序依次为待部署模块C、待部署模块D、待部署模块E和待部署模块F,则在所述第二文件中,可以依次存储有待部署模块C的模块部署信息C、待部署模块D的模块部署信息D、待部署模块E的模块部署信息E和待部署模块F的模块部署信息F。此外,在一些实施例中,所述第二文件还可以包括头部信息,所述头部信息可以包括诸如待部署模块的个数,待部署模块在部署时所需的存储空间、第一文件的大小、第二文件的大小等各个基本信息中的至少一个。
在一些实施例中,由于指定芯片上只能应用以bit形式表示的数据,即二进制数据,因此,所述部署文件可以为二进制文件。
下面以一个具体示例,说明所述部署文件中的第二文件的一种具体实现。
示例性的,所述第一文件可以命名为model.bin,所述第二文件可以命名为net.bin,所述待部署模块可以命名为block。并且,所述第二文件中可以包括头部结构和根据各个所述待部署模块在所述待部署模型中的结构顺序依次存储的各个待部署模块的模块部署信息。其中,Block_i_info为所述第二文件中的第i个待部署模块的模块部署信息。
所述net.bin文件中的信息存储方式如表一所示。
表一:
本申请实施例中,所述第一文件中包括待部署模型的设置参数信息,因此,在后续部署所述待部署模型时,通过读取所述第一文件即可高效设置所述指定芯片中的所述待部署模型。所述第二文件包括根据各个所述待部署模块在所述待部署模型中的结构顺序,依次存储的各个待部署模块的模块部署信息,因此,可以使得所述指定芯片在读取所述待部署模型的过程中,根据所述待部署模型的本身的结构设置顺序依次部署各个层,也即是说,使得所述待部署模型在所述指定芯片中的部署顺序与所述待部署模型本身的信息处理顺序相匹配,从而提升了部署效率,并且提升后续在指定芯片上运行所述待部署模型时对各个待部署模块的调用和信息传递效率。
步骤S103,将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型。
在一些示例中,执行本申请实施例的终端设备可以基于远程调用(RemoteProcedure Call ,RPC)协议向所述指定芯片发送所述部署文件,以指示所述指定芯片根据所述部署文件部署所述待部署模型。
所述指定芯片在接收到所述部署文件之后,可以通过预设解析规则对所述部署文件进行解析,以读取到分别针对各个待部署模块进行部署的部署信息,并根据读取到的部署信息分配存储空间并进行部署。在一些示例中,所述指定芯片中的存储空间可以为双倍速率同步动态随机存取存储器(Double Data RateSynchronous Dynamic Random AccessMemory,DDR SDRAM)空间,其中,双倍速率同步动态随机存取存储器也可能被称为DDR。当然,所述指定芯片也可以采用其他存储器类型。
具体的,在一种具体示例中,可以预先开发基于RPC协议的调用工具,以供所述终端设备对所述指定芯片进行调用。其中,示例性的,终端设备可以通过该调用工具,将第二文件net.bin和第一文件model.bin发送给所述指定芯片,所述指定芯片侧预先定义有解析器,该解析器根据预先设定的对第二文件net.bin的读取方式,按解析得到各个待部署模块block的部署信息,从而解析出所述待部署模型的网络结构和所述指定芯片上运行所述待部署模型需要的机器码信息,并在所述指定芯片上分配相应的DDR空间。
本申请实施例中,可以根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块,以将所述待部署模型进行拆分,此时,相较于所述待部署模型,单个待部署模块的数据量较为合理,以便于后续获取部署信息以及进行部署;然后,根据各个所述待部署模块,生成部署文件,再将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型;其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息,因此,所述指定芯片可以根据所述部署文件分别对各个待部署模块进行部署,此时,由于单个待部署模块的数据量较为合理,在部署过程中也可以更合理更高效地应用所述指定芯片的信息处理资源,从而能够将相应的算法模型高效部署至芯片中。
实施例二:
图2示出了本申请实施例提供的第二种模型部署方法的流程示意图。
如图2所示,所述模型部署方法包括:
步骤S201,根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块;
步骤S202,根据各个所述待部署模块,生成部署文件,其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息;
步骤S203,将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型;
步骤S204,若接收到所述指定芯片返回的目标反馈信息,则根据所述目标反馈信息,将预设的测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型对所述测试数据进行处理,其中,所述目标反馈信息用于指示所述指定芯片完成对所述待部署模型的部署;
步骤S205,若获取到所述指示芯片针对所述测试数据所返回的处理结果,则根据所述处理结果,确定所述指定芯片上部署完成的所述待部署模型的部署精度,所述部署精度用于指示所述指定芯片上部署完成的所述待部署模型相对于所述待部署模型所对应的原始模型在预设模型框架中的精度差异。
其中,S201-S203与上一实施例中的S101-S103相同或相似,具体请参阅实施例一中S101-S103的相关描述,此处不赘述。
在将所述部署文件发送至指定芯片之后,若接收到所述指定芯片返回的反馈信息,则可以确定指定芯片完成对所述待部署模型的部署。然而,在实际应用中,相比于所述待部署模型的原始模型,由于定点化操作等因素的影响,所述指定芯片上部署完成的所述待部署模型相比于所述原始模型可能会产生精度损失,因此,本申请实施例中,可以在所述指定芯片完成对所述待部署模型的部署之后,通过所述终端设备进一步调用所述指定芯片中部署完成的待部署模型,以检测部署完成的所述待部署模型相对于原始模型的精度变化,从而高效验证部署完成的所述待部署模型的性能,并可以及时发现部署后所述待部署模型的性能异常。
其中,所述测试数据可以包括多个待测试项和各个待测试项所分别对应的标准结果。所述测试数据的类型可以为图片、视频、文本和/或音频等等,所述测试数据的类型可以根据所述待部署模型来确定,在此不作限定。
在一些实施例中,所述指定芯片中只能应用以bit形式表示的数据,即二进制数据,因此,本申请实施例中,在执行步骤S204之前,还可以获取原始测试数据,并将所述原始测试数据转换为二进制格式的数据,以获得二进制格式的测试数据。
在一些实施例中,所述目标反馈信息可以包括预设传输接口信息,相应的,若接收到所述指定芯片返回的目标反馈信息,则根据所述目标反馈信息,将预设的测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型对所述测试数据进行处理,包括:
若接收到所述指定芯片返回所述预设传输接口信息,则根据所述预设传输接口信息,将所述测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型,对所述测试数据进行处理。
其中,若接收到所述指定芯片返回所述预设传输接口信息,可以表明所述指定芯片允许所述终端设备通过所述预设传输接口信息调用所述指定芯片中的特定函数或者功能,也即是说,此时,所述终端设备可以根据所述预设传输接口信息,将测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型,对所述测试数据进行处理。
在一些示例中,执行本申请实施例的终端设备可以基于远程调用(RemoteProcedure Call ,RPC)协议将测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型对所述测试数据进行处理。
具体的,在一种具体示例中,可以预先开发基于RPC协议的调用工具,以供所述终端设备对所述指定芯片进行调用。
其中,示例性的,所述调用工具可以包括:
Load_host工具:终端设备可以通过调用Load_host工具,将第二文件net.bin和第一文件model.bin发送给所述指定芯片,所述指定芯片侧预先定义有解析器,该解析器根据预先设定的对第二文件net.bin的读取方式,按解析得到各个待部署模块block的部署信息,从而解析出所述待部署模型的网络结构和所述指定芯片上运行所述待部署模型需要的机器码信息,并在所述指定芯片上分配相应的DDR空间。
在所述终端设备调用Load_host工具以将第二文件net.bin和第一文件model.bin发送给所述指定芯片之后,所述指定芯片可以将包含预设传输接口信息的目标反馈信息返回给终端设备。
set_input工具:终端设备可以通过调用set_input工具将终端设备中的原始测试数据转换成为二进制格式的测试数据,并传送到指定芯片上;
run工具:终端设备可以通过调用run工具,触发指定芯片根据解析得到的网络结构和机器码信息运行部署完成的待部署模型。
get_output工具:终端设备可以通过调用get_output工具,得到所述指示芯片中部署完成的所述待部署模型针对所述测试数据的处理结果。
在一些实施例中,所述待部署模型包括分类模型,所述测试数据中包括多个第一输入对象和每个第一输入对象所对应的标准分类结果,每一个所述第一输入对象所对应的标准分类结果中包括多个标准分类项和每个标准分类项所对应的标准置信度,并且针对每一个第一输入对象,所述第一输入对象的各个标准分类项所分别对应的排列号根据所述第一输入对象的各个标准分类项所分别对应的标准置信度的大小排序得到;
所述处理结果中包括各个所述第一输入对象所分别对应的输出分类结果,每一个所述第一输入对象所对应的输出分类结果中包括多个输出分类项和每个输出分类项所对应的输出置信度,并且针对每一个第一输入对象,所述第一输入对象的各个输出分类项所分别对应的排列号根据所述第一输入对象的各个输出分类项所分别对应的输出置信度的大小排序得到;
所述若获取到所述指示芯片针对所述测试数据所返回的处理结果,则根据所述处理结果,确定所述指定芯片上部署完成的所述待部署模型的部署精度,包括:
步骤S301,针对每一个第一输入对象,获取所述第一输入对象的输出分类结果中的目标输出分类项,并获取所述第一输入对象的标准分类结果中的目标标准分类项,其中,所述目标输出分类项的排列号与所述目标标准分类项的排列号相对应;
步骤S302,若所述目标输出分类项与所述目标标准分类项相同,则确定所述第一输入对象分类成功;
步骤S303,将分类成功的第一输入对象的个数与所述测试数据中包含的第一输入对象的个数的比值,作为所述待部署模型的第一部署后精度;
步骤S304,根据所述第一部署后精度与所述待部署模型的第一部署前精度的比值,确定所述待部署模型的部署精度,其中,所述第一部署前精度为通过所述待部署模型所对应的原始模型在预设模型框架中对所述测试数据进行分类的分类精度。
本申请实施例中,所述分类模型可以用于识别第一输入对象的类别,示例性的,所述第一输入对象可以为图片、视频、文本等。所述输出分类结果中的各个输出分类项可以处于已排序状态,也即是说,针对每一个第一输入对象,所述输出分类结果中,所述第一输入对象的各个输出分类项所分别对应的排列号根据各个输出分类项所分别对应的输出置信度的大小进行排序而得到。并且,所述标准分类结果中的各个标准分类项也处于已排序状态。此时,针对每一个第一输入对象,所述标准分类结果中,所述第一输入对象的各个标准分类项所分别对应的排列号根据各个标准分类项所分别对应的标准置信度的大小进行排序而得到。
可以理解的是,所述部署完成的所述待部署模型对所述测试数据进行处理后的输出的初始分类结果可以是所述输出分类结果,或者,所述初始分类结果中的各个输出分类项可以处于乱序状态,此时,可以针对每一个第一输入对象,在初始分类结果中,根据该第一输入对象的各个输出分类项所分别对应的标准置信度的大小,对该第一输入对象的各个标准分类项进行排序,而得到该第一输入对象的各个标准分类项所分别对应的排列号。
本申请实施例中,所述目标输出分类项的排列号以及所述目标标准分类项的排列号可以预先设定,所述目标输出分类项的排列号与所述目标标准分类项的排列号的对应方式可以根据所述输出分类项的排列号以及标准分类项的排列号的设置方式来确定。
例如,所述输出分类项的排列号根据对应的输出置信度由大到小的顺序排列得到,所述标准分类项的排列号根据对应的标准置信度由大到小的顺序排列得到。那么,所述目标输出分类项的排列号以及所述目标标准分类项的排列号均为1时,所述目标输出分类项的排列号与所述目标标准分类项的排列号相对应。或者,所述目标输出分类项有两项,对应的排列号为1和2,所述目标标准分类项有两项,对应的排列号为1和2,此时,排列号为1的目标输出分类项与排列号为1的目标标准分类项相对应,排列号为2的目标输出分类项与排列号为2的目标标准分类项相对应。相应的,所述目标输出分类项与所述目标标准分类项相同可以指根据所述目标输出分类项的排列号与所述目标标准分类项的排列号的对应方式,所述目标输出分类项与所述目标标准分类项对应相同。即例如,排列号为1的目标输出分类项与排列号为1的目标标准分类项相同,排列号为2的目标输出分类项与排列号为2的目标标准分类项相同。
示例性的,所述目标输出分类项的排列号与所述目标标准分类项的排列号可以均为1时,所述目标输出分类项可以为所述第一输入对象的输出分类结果中输出置信度最高的输出分类项,并且,所述目标标准分类项可以为所述第一输入对象的标准分类结果中标准置信度最高的标准分类项。
如果目标输出分类项与目标标准分类项相同,比如都为第一指定物体,那么,可以确定所述第一输入对象分类成功,也就是确定所述指定芯片上部署完成的所述待部署模型对所述第一输入对象的分类是正确的。而如果目标输出分类项与目标标准分类项不同,也就是说,第一输入对象的输出置信度最高的输出分类项为第一指定物体,而第一输入对象的标准置信度最高的标准分类项为第二指定物体的话,那么部署完成的所述待部署模型对所述第一输入对象的分类是不准确的,也即是说,确定所述第一输入对象分类失败。
当然,所述目标输出分类项的排列号以及所述目标标准分类项的排列号也可以选择其他序号,并且,所述目标输出分类项以及目标标准分类项的个数也可以不止一个。具体的设置方式可以根据实际场景需求来确定。
其中,所述根据所述第一部署后精度与所述待部署模型的第一部署前精度的比值,确定所述待部署模型的部署精度可以包括:若所述第一部署后精度与所述待部署模型的第一部署前精度的比值大于第一预设比值阈值,则可以认为所述待部署模型的部署精度符合预设条件。示例性的,所述第一预设比值阈值可以为99.5%。
通过本申请实施例,可以在分类模型部署到指定芯片上之后,对所述分类模型的部署精度进行准确评估,以及时发现部署完成的所述分类模型的分类性能是否出现异常。
在一些实施例中,所述待部署模型包括检测模型,所述测试数据中包括多个第二输入对象和每个第二输入对象所对应的标准检测框,所述处理结果中包括各个所述第二输入对象所分别对应的输出检测框;
所述若获取到所述指示芯片针对所述测试数据所返回的处理结果,则根据所述处理结果,确定所述指定芯片上部署完成的所述待部署模型的部署精度,包括:
步骤S401,针对每一个第二输入对象,判断所述第二输入对象的输出检测框是否与所述第二输入对象的标准检测框重叠;
步骤S402,若所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,则计算所述第二输入对象的输出检测框与所述第二输入对象的标准检测框之间的重叠部分面积与总覆盖面积之间的比值,所述总覆盖面积为由所述输出检测框和所述标准检测框所构成的区域的面积;
步骤S403,若所述比值大于预设比值阈值,则确定所述第二输入对象检测成功;
步骤S404,将检测成功的第二输入对象的个数与所述测试数据中包含的第二输入对象的个数的比值,作为所述待部署模型的第二部署后精度;
步骤S405,根据所述第二部署后精度与所述待部署模型的第二部署前精度的比值,确定所述待部署模型的部署精度,其中,所述第二部署前精度为通过所述待部署模型所对应的原始模型在预设模型框架中对所述测试数据进行检测的检测精度。
本申请实施例中,所述检测模型可以用于检测第二输入对象中的目标物体的位置等信息。示例性的,所述第二输入对象可以为图片、视频、文本等。
本申请实施例中,可以通过所述第二输入对象的输出检测框与所述第二输入对象的标准检测框之间的相对变化情况,判断所述第二输入对象是否检测成功。其中,所述第二输入对象的输出检测框与所述第二输入对象的标准检测框之间的相对变化情况可以通过该两者是否重叠以及相应的重叠部分面积相对于总覆盖面积之间的占比来确定。
其中,判断所述第二输入对象的输出检测框是否与所述第二输入对象的标准检测框重叠的方式可以有多种,具体的,可以根据所述输出检测框和所述标准检测框的形状来确定。示例性的,若所述输出检测框和所述标准检测框均为矩形框,则可以根据所述输出检测框和所述标准检测框各自的至少两个顶点坐标的相互位置关系来进行判断。
所述根据所述第二部署后精度与所述待部署模型的第二部署前精度的比值,确定所述待部署模型的部署精度可以包括:若所述第二部署后精度与所述待部署模型的第二部署前精度的比值大于第二预设比值阈值,则可以认为所述待部署模型的部署精度符合预设条件。示例性的,所述第二预设比值阈值可以预设为98%。
通过本申请实施例,可以在检测模型部署到指定芯片上之后,对所述检测模型的部署精度进行准确评估,以及时发现部署完成的所述检测模型的检测性能是否出现异常。
在一些实施例中,每一个所述输入对象所对应的标准检测框通过左上角标准坐标(x1,y1)和右下角标准坐标(x2,y2)进行标识,每一个所述输入对象所对应的输出检测框通过左上角输出坐标(xx1,yy1)和右下角输出坐标(xx2,yy2)进行标识;
所述针对每一个第二输入对象,判断所述第二输入对象的输出检测框是否与所述第二输入对象的标准检测框重叠,包括:
若xxx1小于xxx2,并且yyy1小于yyy2,则确定所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,其中,xxx1为x1和xx1中的数值较大值,xxx2为x2和xx2中的数值较小值,yyy1为y1和yy1中的数值较大值,yyy2为y2和yy2中的数值较小值;
所述若所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,则计算所述第二输入对象的输出检测框与所述第二输入对象的标准检测框之间的重叠部分面积与总覆盖面积之间的比值,包括:
若所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,则根据所述xxx2、xxx1、yyy2以及yyy1,计算所述重叠部分面积,并根据所述左上角标准坐标、右下角标准坐标、左上角输出坐标、右下角输出坐标、xxx2、xxx1、yyy2以及yyy1,计算所述总覆盖面积;
计算所述重叠部分面积与总覆盖面积之间的比值。
本申请实时例中,所述标准检测框和所述输出检测框可以均为矩形框,因此,可以分别通过两个坐标对所述标准检测框和所述输出检测框进行标识。
其中,若所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,则可以计算所述重叠部分面积为(xxx2-xxx1)*(yyy2-yyy1),并计算所述总覆盖面积为(y1-y2)*(x2-x1)+(yy1-yy2)*(xx2-xx1)-(xxx2-xxx1)*(yyy2-yyy1);
计算所述第二输入对象的输出检测框与所述第二输入对象的标准检测框之间的重叠部分面积与总覆盖面积之间的比值为:
(xxx2-xxx1)*(yyy2-yyy1)/[(y1-y2)*(x2-x1)+(yy1-yy2)*(xx2-xx1)-(xxx2-xxx1)*(yyy2-yyy1)]。
本申请实施例中,判断所述输入对象的输出检测框是否与所述输入对象的标准检测框重叠的方法的计算量较小,计算结果同时可以用于计算所述重叠部分面积与总覆盖面积,因此,计算效率较高。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例三:
图5示出了本申请实施例提供的一种模型部署装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分:
该模型部署装置5包括:
划分单元501,用于根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块;
生成单元502,用于根据各个所述待部署模块,生成部署文件,其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息;
发送单元503,用于将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型。
可选的,所述属性信息包括运算类型信息,所述运算类型信息指示相应的层用于执行线性运算或者用于执行非线性运算;所述部署文件的部署信息中,包括根据所述运算类型信息确定的各个待部署模块所分别对应的部署位置,任一所述待部署模块的部署位置为数字信号处理器或者神经网络处理器。
可选的,该模型部署装置5还包括:
传输单元,用于若接收到所述指定芯片返回的目标反馈信息,则根据所述目标反馈信息,将预设的测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型对所述测试数据进行处理,其中,所述目标反馈信息用于指示所述指定芯片完成对所述待部署模型的部署;
确定单元,用于若获取到所述指示芯片针对所述测试数据所返回的处理结果,则根据所述处理结果,确定所述指定芯片上部署完成的所述待部署模型的部署精度,所述部署精度用于指示所述指定芯片上部署完成的所述待部署模型相对于所述待部署模型所对应的原始模型在预设模型框架中的精度差异。
可选的,所述待部署模型包括分类模型,所述测试数据中包括多个第一输入对象和每个第一输入对象所对应的标准分类结果,每一个所述第一输入对象所对应的标准分类结果中包括多个标准分类项和每个标准分类项所对应的标准置信度,并且针对每一个第一输入对象,所述第一输入对象的各个标准分类项所分别对应的排列号根据所述第一输入对象的各个标准分类项所分别对应的标准置信度的大小排序得到;
所述处理结果中包括各个所述第一输入对象所分别对应的输出分类结果,每一个所述第一输入对象所对应的输出分类结果中包括多个输出分类项和每个输出分类项所对应的输出置信度,并且针对每一个第一输入对象,所述第一输入对象的各个输出分类项所分别对应的排列号根据所述第一输入对象的各个输出分类项所分别对应的输出置信度的大小排序得到;
所述确定单元具体包括:
获取子单元,用于针对每一个第一输入对象,获取所述第一输入对象的输出分类结果中的目标输出分类项,并获取所述第一输入对象的标准分类结果中的目标标准分类项,其中,所述目标输出分类项的排列号与所述目标标准分类项的排列号相对应;
第一确定子单元,用于若所述目标输出分类项与所述目标标准分类项相同,则确定所述第一输入对象分类成功;
第一比对子单元,用于将分类成功的第一输入对象的个数与所述测试数据中包含的第一输入对象的个数的比值,作为所述待部署模型的第一部署后精度;
第二确定子单元,用于根据所述第一部署后精度与所述待部署模型的第一部署前精度的比值,确定所述待部署模型的部署精度,其中,所述第一部署前精度为通过所述待部署模型所对应的原始模型在预设模型框架中对所述测试数据进行分类的分类精度。
可选的,所述待部署模型包括检测模型,所述测试数据中包括多个第二输入对象和每个第二输入对象所对应的标准检测框,所述处理结果中包括各个所述第二输入对象所分别对应的输出检测框;
所述确定单元具体包括:
判断子单元,用于针对每一个第二输入对象,判断所述第二输入对象的输出检测框是否与所述第二输入对象的标准检测框重叠;
计算子单元,用于若所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,则计算所述第二输入对象的输出检测框与所述第二输入对象的标准检测框之间的重叠部分面积与总覆盖面积之间的比值,所述总覆盖面积为由所述输出检测框和所述标准检测框所构成的区域的面积;
第三确定子单元,用于若所述比值大于预设比值阈值,则确定所述第二输入对象检测成功;
第二比对子单元,用于将检测成功的第二输入对象的个数与所述测试数据中包含的第二输入对象的个数的比值,作为所述待部署模型的第二部署后精度;
第四确定子单元,用于根据所述第二部署后精度与所述待部署模型的第二部署前精度的比值,确定所述待部署模型的部署精度,其中,所述第二部署前精度为通过所述待部署模型所对应的原始模型在预设模型框架中对所述测试数据进行检测的检测精度。
可选的,每一个所述输入对象所对应的标准检测框通过左上角标准坐标(x1,y1)和右下角标准坐标(x2,y2)进行标识,每一个所述输入对象所对应的输出检测框通过左上角输出坐标(xx1,yy1)和右下角输出坐标(xx2,yy2)进行标识;
所述判断子单元具体用于:
若xxx1小于xxx2,并且yyy1小于yyy2,则确定所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,其中,xxx1为x1和xx1中的数值较大值,xxx2为x2和xx2中的数值较小值,yyy1为y1和yy1中的数值较大值,yyy2为y2和yy2中的数值较小值;
所述计算子单元具体用于:
若所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,则根据所述xxx2、 xxx1、yyy2以及 yyy1,计算所述重叠部分面积,并根据所述左上角标准坐标、右下角标准坐标、左上角输出坐标、右下角输出坐标、xxx2、 xxx1、yyy2以及 yyy1,计算所述总覆盖面积;
计算所述重叠部分面积与总覆盖面积之间的比值。
可选的,所述目标反馈信息包括预设传输接口信息;
所述传输单元具体用于:
若接收到所述指定芯片返回所述预设传输接口信息,则根据所述预设传输接口信息,将所述测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型,对所述测试数据进行处理。
可选的,所述部署文件包括第一文件和第二文件,其中,所述第一文件包括所述待部署模型的设置参数信息,所述第二文件包括根据各个所述待部署模块在所述待部署模型中的结构顺序,依次存储的各个待部署模块的模块部署信息。
可选的,所述部署信息包括每一个待部署模块的结构参数信息、存储大小信息、存储地址信息、部署位置信息以及机器码中的至少一个。
可选的,所述属性信息包括信息传输方式信息,所述信息传输方式信息用于指示对应的层的信息传输方式包括并行传输和/或串行传输,所述部署文件的部署信息中,包括各个待部署模块所分别对应的数据处理资源,每一个待部署模块所对应的数据处理资源根据所述待部署模块中的层的信息传输方式确定。
可选的,所述属性信息包括数据量信息,其中,所述信息传输方式信息用于指示对应的层所涉及的数据量,所述部署文件的部署信息中,包括根据所述数据量信息确定的各个待部署模块所分别对应的计算资源,每一个待部署模块所对应的所述计算资源根据所述待部署模块中的层的数据量信息确定。
可选的,所述模型部署装置还包括:
获取单元,用于获取原始模型,其中,所述原始模型中应用有浮点数;
定点化单元,用于对所述原始模型执行定点化操作,获得所述待部署模型。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施例四:
图6是本申请一实施例提供的终端设备的示意图。如图6所示,该实施例的终端设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62。所述处理器60执行所述计算机程序62时实现上述各个模型部署方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示单元501至503的功能。
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本申请实施例。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述终端设备6中的执行过程。例如,所述计算机程序62可以被分割成划分单元、生成单元和发送单元,各单元具体功能如下:
划分单元,用于根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块;
生成单元,用于根据各个所述待部署模块,生成部署文件,其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息;
发送单元,用于将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型。
所述终端设备6可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (15)
1.一种模型部署方法,其特征在于,包括:
根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块;
根据各个所述待部署模块,生成部署文件,其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息;
将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型。
2.如权利要求1所述的模型部署方法,其特征在于,所述属性信息包括运算类型信息,所述运算类型信息指示相应的层用于执行线性运算或者用于执行非线性运算;所述部署文件的部署信息中,包括根据所述运算类型信息确定的各个待部署模块所分别对应的部署位置,任一所述待部署模块的部署位置为数字信号处理器或者神经网络处理器。
3.如权利要求1所述的模型部署方法,其特征在于,在将所述部署文件发送至指定芯片之后,还包括:
若接收到所述指定芯片返回的目标反馈信息,则根据所述目标反馈信息,将预设的测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型对所述测试数据进行处理,其中,所述目标反馈信息用于指示所述指定芯片完成对所述待部署模型的部署;
若获取到所述指示芯片针对所述测试数据所返回的处理结果,则根据所述处理结果,确定所述指定芯片上部署完成的所述待部署模型的部署精度,所述部署精度用于指示所述指定芯片上部署完成的所述待部署模型相对于所述待部署模型所对应的原始模型在预设模型框架中的精度差异。
4.如权利要求3所述的模型部署方法,其特征在于,所述待部署模型包括分类模型,所述测试数据中包括多个第一输入对象和每个第一输入对象所对应的标准分类结果,每一个所述第一输入对象所对应的标准分类结果中包括多个标准分类项和每个标准分类项所对应的标准置信度,并且针对每一个第一输入对象,所述第一输入对象的各个标准分类项所分别对应的排列号根据所述第一输入对象的各个标准分类项所分别对应的标准置信度的大小排序得到;
所述处理结果中包括各个所述第一输入对象所分别对应的输出分类结果,每一个所述第一输入对象所对应的输出分类结果中包括多个输出分类项和每个输出分类项所对应的输出置信度,并且针对每一个第一输入对象,所述第一输入对象的各个输出分类项所分别对应的排列号根据所述第一输入对象的各个输出分类项所分别对应的输出置信度的大小排序得到;
所述若获取到所述指示芯片针对所述测试数据所返回的处理结果,则根据所述处理结果,确定所述指定芯片上部署完成的所述待部署模型的部署精度,包括:
针对每一个第一输入对象,获取所述第一输入对象的输出分类结果中的目标输出分类项,并获取所述第一输入对象的标准分类结果中的目标标准分类项,其中,所述目标输出分类项的排列号与所述目标标准分类项的排列号相对应;
若所述目标输出分类项与所述目标标准分类项相同,则确定所述第一输入对象分类成功;
将分类成功的第一输入对象的个数与所述测试数据中包含的第一输入对象的个数的比值,作为所述待部署模型的第一部署后精度;
根据所述第一部署后精度与所述待部署模型的第一部署前精度的比值,确定所述待部署模型的部署精度,其中,所述第一部署前精度为通过所述待部署模型所对应的原始模型在预设模型框架中对所述测试数据进行分类的分类精度。
5.如权利要求3所述的模型部署方法,其特征在于,所述待部署模型包括检测模型,所述测试数据中包括多个第二输入对象和每个第二输入对象所对应的标准检测框,所述处理结果中包括各个所述第二输入对象所分别对应的输出检测框;
所述若获取到所述指示芯片针对所述测试数据所返回的处理结果,则根据所述处理结果,确定所述指定芯片上部署完成的所述待部署模型的部署精度,包括:
针对每一个第二输入对象,判断所述第二输入对象的输出检测框是否与所述第二输入对象的标准检测框重叠;
若所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,则计算所述第二输入对象的输出检测框与所述第二输入对象的标准检测框之间的重叠部分面积与总覆盖面积之间的比值,所述总覆盖面积为由所述输出检测框和所述标准检测框所构成的区域的面积;
若所述比值大于预设比值阈值,则确定所述第二输入对象检测成功;
将检测成功的第二输入对象的个数与所述测试数据中包含的第二输入对象的个数的比值,作为所述待部署模型的第二部署后精度;
根据所述第二部署后精度与所述待部署模型的第二部署前精度的比值,确定所述待部署模型的部署精度,其中,所述第二部署前精度为通过所述待部署模型所对应的原始模型在预设模型框架中对所述测试数据进行检测的检测精度。
6.如权利要求5所述的模型部署方法,其特征在于,每一个所述输入对象所对应的标准检测框通过左上角标准坐标(x1,y1)和右下角标准坐标(x2,y2)进行标识,每一个所述输入对象所对应的输出检测框通过左上角输出坐标(xx1,yy1)和右下角输出坐标(xx2,yy2)进行标识;
所述针对每一个第二输入对象,判断所述第二输入对象的输出检测框是否与所述第二输入对象的标准检测框重叠,包括:
若xxx1小于xxx2,并且yyy1小于yyy2,则确定所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,其中,xxx1为x1和xx1中的数值较大值,xxx2为x2和xx2中的数值较小值,yyy1为y1和yy1中的数值较大值,yyy2为y2和yy2中的数值较小值;
所述若所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,则计算所述第二输入对象的输出检测框与所述第二输入对象的标准检测框之间的重叠部分面积与总覆盖面积之间的比值,包括:
若所述第二输入对象的输出检测框与所述第二输入对象的标准检测框重叠,则根据所述xxx2、xxx1、yyy2以及yyy1,计算所述重叠部分面积,并根据所述左上角标准坐标、右下角标准坐标、左上角输出坐标、右下角输出坐标、xxx2、xxx1、yyy2以及yyy1,计算所述总覆盖面积;
计算所述重叠部分面积与总覆盖面积之间的比值。
7.如权利要求3所述的模型部署方法,其特征在于,所述目标反馈信息包括预设传输接口信息;
所述若接收到所述指定芯片返回的目标反馈信息,则根据所述目标反馈信息,将预设的测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型对所述测试数据进行处理,包括:
若接收到所述指定芯片返回所述预设传输接口信息,则根据所述预设传输接口信息,将所述测试数据传输至所述指定芯片,并指示所述指定芯片通过部署完成的所述待部署模型,对所述测试数据进行处理。
8.如权利要求1所述的模型部署方法,其特征在于,所述部署文件包括第一文件和第二文件,其中,所述第一文件包括所述待部署模型的设置参数信息,所述第二文件包括根据各个所述待部署模块在所述待部署模型中的结构顺序,依次存储的各个待部署模块的模块部署信息。
9.如权利要求1所述的模型部署方法,其特征在于,所述部署信息包括每一个待部署模块的结构参数信息、存储大小信息、存储地址信息、部署位置信息以及机器码中的至少一个。
10.如权利要求1所述的模型部署方法,其特征在于,所述属性信息包括信息传输方式信息,所述信息传输方式信息用于指示对应的层的信息传输方式包括并行传输和/或串行传输,所述部署文件的部署信息中,包括各个待部署模块所分别对应的数据处理资源,每一个待部署模块所对应的数据处理资源根据所述待部署模块中的层的信息传输方式确定。
11.如权利要求1所述的模型部署方法,其特征在于,所述属性信息包括数据量信息,其中,所述信息传输方式信息用于指示对应的层所涉及的数据量,所述部署文件的部署信息中,包括根据所述数据量信息确定的各个待部署模块所分别对应的计算资源,每一个待部署模块所对应的所述计算资源根据所述待部署模块中的层的数据量信息确定。
12.如权利要求1至11任意一项所述的模型部署方法,其特征在于,在根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块之前,还包括:
获取原始模型,其中,所述原始模型中应用有浮点数;
对所述原始模型执行定点化操作,获得所述待部署模型。
13.一种模型部署装置,其特征在于,包括:
划分单元,用于根据预设的待部署模型中的至少两个层所分别对应的属性信息,将所述待部署模型划分为至少两个待部署模块;
生成单元,用于根据各个所述待部署模块,生成部署文件,其中,所述部署文件包含分别针对各个待部署模块进行部署的部署信息;
发送单元,用于将所述部署文件发送至指定芯片,以指示所述指定芯片根据所述部署文件部署所述待部署模型。
14.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,当所述处理器执行所述计算机程序时,使得终端设备实现如权利要求1至12任一项所述模型部署方法的步骤。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,当所述计算机程序被处理器执行时,使得终端设备实现如权利要求1至12任一项所述模型部署方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011050556.3A CN111897660B (zh) | 2020-09-29 | 2020-09-29 | 模型部署方法、模型部署装置及终端设备 |
US17/468,702 US11385878B2 (en) | 2020-09-29 | 2021-09-08 | Model deployment method, model deployment device and terminal equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011050556.3A CN111897660B (zh) | 2020-09-29 | 2020-09-29 | 模型部署方法、模型部署装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111897660A true CN111897660A (zh) | 2020-11-06 |
CN111897660B CN111897660B (zh) | 2021-01-15 |
Family
ID=73223982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011050556.3A Active CN111897660B (zh) | 2020-09-29 | 2020-09-29 | 模型部署方法、模型部署装置及终端设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11385878B2 (zh) |
CN (1) | CN111897660B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703975A (zh) * | 2021-08-27 | 2021-11-26 | 创新奇智(重庆)科技有限公司 | 模型分配方法、装置、电子设备及计算机可读存储介质 |
CN115145592A (zh) * | 2022-09-01 | 2022-10-04 | 新华三技术有限公司 | 离线模型部署方法和装置、网络设备、分析器 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4002233A1 (en) * | 2020-11-19 | 2022-05-25 | Siemens Aktiengesellschaft | Determining in which technological layer a module of a mom application is to be deployed |
CN114861836B (zh) * | 2022-07-05 | 2022-10-28 | 浙江大华技术股份有限公司 | 一种基于人工智能平台的模型部署方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615466A (zh) * | 2015-02-05 | 2015-05-13 | 广州亦云信息技术有限公司 | 一种云平台部署方法和*** |
CN108416438A (zh) * | 2018-05-30 | 2018-08-17 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络硬件模块部署方法 |
CN109120674A (zh) * | 2018-07-20 | 2019-01-01 | 新华三大数据技术有限公司 | 大数据平台的部署方法及装置 |
CN111274034A (zh) * | 2020-01-19 | 2020-06-12 | 北京奇艺世纪科技有限公司 | 模型推理的资源分配方法、装置、计算机设备和存储介质 |
US20200218528A1 (en) * | 2017-09-19 | 2020-07-09 | Huawei Technologies Co., Ltd. | Application Deployment Method, Apparatus, and System |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144256A1 (en) * | 2001-03-30 | 2002-10-03 | Navin Budhiraja | Method of deployment for concurrent execution of multiple versions of an integration model on an integration server |
US10482389B2 (en) * | 2014-12-04 | 2019-11-19 | Sap Se | Parallel development and deployment for machine learning models |
US10839314B2 (en) * | 2016-09-15 | 2020-11-17 | Infosys Limited | Automated system for development and deployment of heterogeneous predictive models |
US11108575B2 (en) * | 2017-07-26 | 2021-08-31 | Amazon Technologies, Inc. | Training models for IOT devices |
GB201805302D0 (en) * | 2018-03-29 | 2018-05-16 | Benevolentai Tech Limited | Ensemble Model Creation And Selection |
US20220083896A9 (en) * | 2019-04-12 | 2022-03-17 | Userzoom Technologies, Inc. | Systems and methods for improved modelling of partitioned datasets |
US11922359B2 (en) * | 2019-04-29 | 2024-03-05 | Abb Schweiz Ag | System and method for securely training and using a model |
US11579924B2 (en) * | 2020-02-12 | 2023-02-14 | EMC IP Holding Company LLC | Scheduling artificial intelligence model partitions based on reversed computation graph |
CN111338693B (zh) * | 2020-02-22 | 2023-07-14 | 深圳市魔数智擎人工智能有限公司 | 基于模型构建的目标文件生成方法、服务器及存储介质 |
US11074058B1 (en) * | 2020-06-30 | 2021-07-27 | Microsoft Technology Licensing, Llc | Deployment operations based on deployment profiles in a deployment system |
-
2020
- 2020-09-29 CN CN202011050556.3A patent/CN111897660B/zh active Active
-
2021
- 2021-09-08 US US17/468,702 patent/US11385878B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615466A (zh) * | 2015-02-05 | 2015-05-13 | 广州亦云信息技术有限公司 | 一种云平台部署方法和*** |
US20200218528A1 (en) * | 2017-09-19 | 2020-07-09 | Huawei Technologies Co., Ltd. | Application Deployment Method, Apparatus, and System |
CN108416438A (zh) * | 2018-05-30 | 2018-08-17 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络硬件模块部署方法 |
CN109120674A (zh) * | 2018-07-20 | 2019-01-01 | 新华三大数据技术有限公司 | 大数据平台的部署方法及装置 |
CN111274034A (zh) * | 2020-01-19 | 2020-06-12 | 北京奇艺世纪科技有限公司 | 模型推理的资源分配方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703975A (zh) * | 2021-08-27 | 2021-11-26 | 创新奇智(重庆)科技有限公司 | 模型分配方法、装置、电子设备及计算机可读存储介质 |
CN115145592A (zh) * | 2022-09-01 | 2022-10-04 | 新华三技术有限公司 | 离线模型部署方法和装置、网络设备、分析器 |
Also Published As
Publication number | Publication date |
---|---|
CN111897660B (zh) | 2021-01-15 |
US11385878B2 (en) | 2022-07-12 |
US20220100486A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111897660B (zh) | 模型部署方法、模型部署装置及终端设备 | |
CN109214421B (zh) | 一种模型训练方法、装置、及计算机设备 | |
CN113312361B (zh) | 轨迹查询方法、装置、设备、存储介质及计算机程序产品 | |
CN107807841B (zh) | 服务器模拟方法、装置、设备及可读存储介质 | |
CN113449854A (zh) | 网络模型的混合精度量化方法、设备及计算机存储介质 | |
CN110245684B (zh) | 数据处理方法、电子设备和介质 | |
CN110069997B (zh) | 场景分类方法、装置及电子设备 | |
CN110580171A (zh) | App分类方法、相关装置及产品 | |
CN111127616B (zh) | 一种渲染校验方法及装置 | |
CN112068965A (zh) | 数据处理方法、装置、电子设备和可读存储介质 | |
CN111949510B (zh) | 测试处理方法、装置、电子设备及可读存储介质 | |
CN111913743B (zh) | 数据处理方法及装置 | |
WO2023071566A1 (zh) | 数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
CN110909085A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN116912556A (zh) | 图片分类方法、装置、电子设备及存储介质 | |
WO2022166830A1 (zh) | 一种文本分类的特征提取方法及装置 | |
CN112379967B (zh) | 模拟器检测方法、装置、设备及介质 | |
CN115033434A (zh) | 一种内核性能理论值计算方法、装置及存储介质 | |
US11182606B2 (en) | Converting chart data | |
CN112835759A (zh) | 测试数据处理方法、装置、电子设备以及存储介质 | |
CN108073594B (zh) | 一种生成热力图的方法及装置 | |
CN112394809A (zh) | 一种实现增强现实的方法、装置及通信设备 | |
CN106528577B (zh) | 一种设置待清理文件的方法和装置 | |
CN113392010B (zh) | 公共组件测试方法、装置、电子设备及存储介质 | |
CN116563665B (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 |