CN113806095A - 一种网络模型部署方法、装置、存储介质及边缘设备 - Google Patents
一种网络模型部署方法、装置、存储介质及边缘设备 Download PDFInfo
- Publication number
- CN113806095A CN113806095A CN202111116953.0A CN202111116953A CN113806095A CN 113806095 A CN113806095 A CN 113806095A CN 202111116953 A CN202111116953 A CN 202111116953A CN 113806095 A CN113806095 A CN 113806095A
- Authority
- CN
- China
- Prior art keywords
- network model
- npu
- model
- sub
- deploying
- 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 64
- 238000012545 processing Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 9
- 238000012549 training Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004445 quantitative analysis Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005094 computer simulation Methods 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提出一种网络模型部署方法、装置、存储介质及边缘设备,依据边缘设备中NPU支持的算子,筛选出网络模型中NPU的不支持算子;将不支持算子作为分界点,对网络模型进行拆分,以获得至少两个子模型;将子模型部署于NPU,将不支持算子部署于CPU。本申请实施例提供的方法,即便网络模型包括NPU不支持的算子,也能够完整的将网络模型部署到边缘设备,相比为适配边缘设备的NPU而限制特定算子的使用,本方法能够保障网络模型部署的完整度,使得部署后的网络模型具备较高的准确度。
Description
技术领域
本申请涉及网络模型领域,具体而言,涉及一种网络模型部署方法、装置、存储介质及边缘设备。
背景技术
随着边缘计算的发展,越来越多的边缘计算设备可直接执行复杂的模型推理过程,从而节约数据上行到云端设备和下行到用户设备的时间。相比于云端设备,边缘端设备NPU的算力有限,并且支持的算子有限。
因此,如何在保障较高的准确度的前提下,完成模型到边缘设备的部署,成为了困扰本领域技术人员的难题。
发明内容
本申请的目的在于提供一种网络模型部署方法、装置、存储介质及边缘设备,以至少部分改善上述问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种网络模型部署方法,所述方法包括:
依据边缘设备中NPU支持的算子,筛选出网络模型中所述NPU的不支持算子;
将所述不支持算子作为分界点,对所述网络模型进行拆分,以获得至少两个子模型;
将所述子模型部署于所述NPU,将所述不支持算子部署于CPU。
第二方面,本申请实施例提供一种网络模型部署装置,所述装置包括:
处理单元,用于依据边缘设备中NPU支持的算子,筛选出网络模型中所述NPU的不支持算子;
所述处理单元还用于将所述不支持算子作为分界点,对所述网络模型进行拆分,以获得至少两个子模型;
部署单元,用于将所述子模型部署于所述NPU,将所述不支持算子部署于CPU。
第三方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的方法。
第四方面,本申请实施例提供一种边缘设备,所述边缘设备包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现上述的方法。
相对于现有技术,本申请实施例所提供的一种网络模型部署方法、装置、存储介质及边缘设备,依据边缘设备中NPU支持的算子,筛选出网络模型中NPU的不支持算子;将不支持算子作为分界点,对网络模型进行拆分,以获得至少两个子模型;将子模型部署于NPU,将不支持算子部署于CPU。本申请实施例提供的方法,即便网络模型包括NPU不支持的算子,也能够完整的将网络模型部署到边缘设备,相比为适配边缘设备的NPU而限制特定算子的使用,本方法能够保障网络模型部署的完整度,使得部署后的网络模型具备较高的准确度。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本申请实施例提供的边缘设备的结构示意图;
图2为本申请实施例提供的网络模型部署方法的流程示意图;
图3为本申请实施例提供的网络模型拆分示意图;
图4为本申请实施例提供的S103的子步骤示意图;
图5为本申请实施例提供的S103的子步骤示意图之一;
图6为本申请实施例提供的网络模型部署方法的流程示意图之一;
图7为本申请实施例提供的S101的子步骤示意图;
图8为本申请实施例提供的网络模型部署装置的单元示意图。
图中:10-处理器;11-存储器;12-总线;13-通信接口;201-处理单元;202-部署单元。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
现有技术,通过在设计网络模型中避免使用NPU不支持的算子和复杂度较高的算子,完成网络模型到边缘设备的部署。但因限制特定算子的使用,无法保证网络模型能达到较高的准确度。例如,点云障碍物检测模型部署到NPU中限制较多,且无法保证转换后的模型能达到较高的准确度。为了克服以上问题,本申请实施例提供了一种网络模型部署方法。
本申请实施例提供了一种边缘设备,可以是便携式移动终端、计算机以及服务器等设备。请参照图1,边缘设备的结构示意图。边缘设备包括处理器10、存储器11、总线12。处理器10、存储器11通过总线12连接,处理器10用于执行存储器11中存储的可执行模块,例如计算机程序。
处理器10可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,网络模型部署方法的各步骤可以通过处理器10中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器10可以包括中央处理器(Central Processing Unit,简称CPU);还可以包括网络处理器(NPU)。当然,也可以有其他类型的处理器,比如还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器11可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
总线12可以是ISA(Industry Standard Architecture)总线、PCI(PeripheralComponent Interconnect)总线或EISA(Extended Industry Standard Architecture)总线等。图1中仅用一个双向箭头表示,但并不表示仅有一根总线12或一种类型的总线12。
存储器11用于存储程序,例如网络模型部署装置对应的程序。网络模型部署装置包括至少一个可以软件或固件(firmware)的形式存储于存储器11中或固化在边缘设备的操作系统(operating system,OS)中的软件功能模块。处理器10在接收到执行指令后,执行所述程序以实现网络模型部署方法。
可能地,本申请实施例提供的边缘设备还包括通信接口13。通信接口13通过总线与处理器10连接。边缘设备可以通过通信接口13与其他终端交互。
应当理解的是,图1所示的结构仅为边缘设备的部分的结构示意图,边缘设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例提供的一种网络模型部署方法,可以但不限于应用于图1所示的边缘设备,具体的流程,请参考图2,网络模型部署方法包括:S101、S102、S103以及S104。
S101,依据边缘设备中NPU支持的算子,筛选出网络模型中NPU的不支持算子。
正如前文所述,NPU的算力有限,而复杂的网络模型中的部分特定算子,可能超出NPU的支持范围。为了完成该类型的网络模型部署,往往需要简化网络模型,限制特定算子的使用,导致影响网络模型运行的准确度降低。而本申请方案中,并不需要简化网络模型,网络模型可以完整的部署到边缘设备中。
可以理解地,NPU的算子支持说明中包括NPU能够支持的所有算子的种类、结构或名称,通过算子支持说明可以统计或筛选出NPU能够支持的所有算子。在知晓边缘设备中NPU支持的算子的前提下,可以通过遍历网络模型中的每一个算子,筛选出网络模型中NPU的不支持算子。
需要说明的是,算子是具体的模型单元,算法是一种思想方法。两者之间的关系可以概括为:算子是算法实现的媒介;算法是算子运用的灵魂。
可以理解地,网络模型可以为基于点云的全地形障碍物检测模型、物体识别模型以及其他复杂的计算模型。
S102,将不支持算子作为分界点,对网络模型进行拆分,以获得至少两个子模型。
其中,子模型包含至少一个NPU支持的算子。
请参考图3,假设网络模型包括14个算子,M算子和N算子为NPU的不支持算子。以M算子和N算子作为分界点,拆分得到子模型1和子模型2。需要说明的是,NPU可以支持子模型1和子模型2中的所有算子。
图3中示出的子模型1和子模型2均包括多个算子,但在此并未限定子模型中算子数量,子模型可以只包括1个算子。当子模型包括多个算子时,多个算子为连续的多个算子。如图3所示,子模型1和子模型2中的多个算子呈连续连接的状态。
可以理解地,子模型是从原网络模型中拆分出来的,所以只需要通过子模型的输入输出就能确定子模型的具体结构。而不支持算子的前后的算子,分别是前一个子模型的输出和后一个子模型的输入。故而只要定位到不支持的算子位置,就能明确子模型结构,实现拆分。而不支持算子操作,通过CPU编程实现,以完成迁移,即可以将不支持算子部署于CPU。
S103,将子模型部署于NPU。
请继续参考图3,NPU可以支持子模型1和子模型2中的所有算子,所以可以将子模型1和子模型2部署于NPU。
S104,将不支持算子部署于CPU。
可选地,CPU可以为边缘设备中的处理器10。
通过分别将子模型部署于NPU和将不支持算子部署于CPU,可以忽略边缘设备的NPU对网络模型的限制。即使网络模型包括NPU无法支持的算子,也可以通过拆分模型和分开部署解决,从而将复杂的网络模型完整地部署于边缘设备,保障网络模型部署的完整度,使得部署后的网络模型具备较高的准确度。
可以理解地,CPU可以按照顺序关系,调用NPU执行子模型对应的计算过程,从而完成的实现网络模型计算。在保障较高的准确度的前提下,完成网络模型到边缘设备的部署。
综上所述,本申请实施例提供了一种网络模型部署方法,依据边缘设备中NPU支持的算子,筛选出网络模型中NPU的不支持算子;将不支持算子作为分界点,对网络模型进行拆分,以获得至少两个子模型;将子模型部署于NPU,将不支持算子部署于CPU。本申请实施例提供的方法,即便网络模型包括NPU不支持的算子,也能够完整的将网络模型部署到边缘设备,相比为适配边缘设备的NPU而限制特定算子的使用,本方法能够保障网络模型部署的完整度,使得部署后的网络模型具备较高的准确度。
在一种可能的实现方式中,网络模型的搭建动作是在云端服务器完成的。以网络模型为识别模型作为示例说明,一个识别模型是多个算子的堆叠集合。算子作为一个单元,包含输入、计算、输出三个部分。本申请实施例提供的网络模型部署方法中,不支持的算子可以看作‘分节符’一样的存在,根据其位置进行拆分模型。并且不会将不支持算子构建成子模型,而是将其转移到CPU编程实现。可能地,不支持的原因是计算方式比较特别,NPU厂商开发时未计划支持这种计算方式,或者算子的计算量过大。
在图2的基础上,关于S103中的内容,本申请实施例还提供了一种可能的实现方式,请参考图4,S103包括S103-1和S103-2。
S103-1,在子模型的图复杂度超过NPU的复杂度上限的情况下,将子模型拆分为至少两个分支模型。
其中,分支模型的图复杂度未超过NPU的复杂度上限。
可以理解地,在子模型的图复杂度超过NPU的复杂度上限的情况下,如果直接将子模型部署到NPU,可能会超出NPU的运行能力,会影响网络模型的运转。所以,可以将子模型拆分为图复杂度未超过NPU的复杂度上限的分支模型。需要说明的是,每一个分支模型至少包括一个NPU支持的算子。每一个分支模型中的算子呈连续状态。
在一种可能的实现方式中,图复杂度包括计算复杂度和/或图结构复杂度,计算复杂度用于表征子模型的总计算量,图结构复杂度用于表征子模型中最小不可分割算子的数量。
可选地,进一步分析拆分网络模型所获得的子模型的图复杂度,例如图3中的子模型1和子模型2的图复杂度。图复杂度包括计算复杂度和图结构复杂度,计算复杂度指的是子模型的总计算量,图结构复杂度指的是子模型中最小不可分割算子的数量。以子模型2为例,子模型2的图结构复杂度为9,子模型2的计算复杂度指9个算子总的计算量。
在一种可能的实现方式,通过层级的二分法,将复杂的子模型不断拆分成两份,直到所有模型不超过复杂度限制,即将不超过复杂度限制的模型确定为分支模型。
S103-2,将分支模型分别部署于NPU。
可以理解地,将子模型拆分为至少两个分支模型,并将拆分后的分支模型分别部署于对应的NPU,使得NPU能够运行分支模型中的算子。
在图2的基础上,关于如何进一步提升网络模型的准确度,本申请实施例还提供了一种可能的实现方式,请参考图5,S103还包括S103-3和S103-4。
S103-3,依据网络模型的参数分布,对各个子模型进行量化。其中,网络模型的参数分布是网络模型在量化训练并收敛后的参数分布。在本实施例中,虽然对网络模型进行了拆分,得到多个子模型,但在对子模型进行量化时,并不是根据拆分后的模型的参数分布对子模型进行量化,而是根据拆分前的模型的参数分布对子模型进行量化的,拆分前的模型即网络模型。由于最终各个子模型需要通过工程化串接起来,因此在量化时根据完整的网络模型的参数分布对子模型进行量化,可以提高部署完成后模型的精度。
可以理解地,在云端服务器对未拆分的网络模型进行训练,当网络模型收敛时,网络模型中的参数分布不一定适用于NPU。因此,需要依据收敛的网络模型中的参数分布,对子模型进行量化分析和转换,以得到新的子模型。进行量化分析和转换得到的新的子模型中的参数分布适用于NPU。
S103-4,将量化后的子模型部署于NPU。
可以理解地,将量化后的子模型的参数分布传输给NPU,NPU即可完成子模型的部署。
需要说明的是,本申请实施例中S103-1、S103-2与S103-3、S103-4之间没有必然的关系,即可以只执行图4所示的S103的子步骤,也可以只执行图5所示的S103的子步骤。在一种可能的实现中,可以同时执行图4和图5所示的步骤。
具体地,先执行S103-1,在子模型的图复杂度超过NPU的复杂度上限的情况下,将子模型拆分为至少两个分支模型。然后执行S103-3,依据网络模型的参数分布,对各个分支模型进行量化。最后,执行S103-4,将量化后的分支模型部署于NPU。
在一种可能的实现方式中,子模型的图复杂度未超过NPU的复杂度上限,对未拆分的网络模型进行训练,以使网络模型收敛后,可以依据收敛的网络模型中的参数分布,对子模型进行量化分析和转换,以得到新的子模型。然后将新的子模型部署于NPU即可。
在一种可能的实现方式中,量化分析包括两个部分:第一部分,模型参数的数值范围;第二部分,模型推理数据时各节点输入输出的数值范围。具体过程如下:首先,统计模型参数的数值范围;其次,使用模型推理大量数据以获得每个节点的输入输出数据,统计其数值范围;然后,根据统计的参数与数据的数值范围,将其归一化到NPU支持的更低精度、小存储的数据类型;最后,将模型结构和参数结合并进行转换成NPU支持的模型格式。从而尽可能减少精度损失地将模型部署到NPU上执行。
在一种可能的实现方式中,由云端服务器对未拆分的网络模型进行训练,直至网络模型收敛。
可以理解地,已经通过训练确定了收敛的主体网络模型,所有的子模型均从收敛的主体网络模型上拆分而来。所有合理的训练方法最终都会收敛到最优结果,但是网络模型通过普通训练后再进行量化部署会存在精度损失问题。为解决这个问题,使用量化感知训练尽可能减少精度损失。使用主体网络模型进行数据推理,分析每个算子参数和输出的分布,并根据约束主体模型的最终结果到目标结果的目标归一量化所有算子参数和输出分布,从而完成量化分析与参数量化。在模型序列化后,根据NPU供应商提供的工具进行结构描述转换,为了可以被特定SDK加载进行推理,从而完成模型转换。
在图2的基础上,关于如何进行细化部署网络模型于边缘设备的过程,本申请实施例还提供了一种可能的实现方式,如图6所示,网络模型部署方法还包括S105。
S105,通过工程化将所有子模型和不支持算子的计算过程串接。
其中,串接顺序符合网络模型中的顺序关系。
在一种可能的实现方式中,通过工程化将所有子模型和不支持算子的计算过程串接的步骤,可以是在完成子模型和不支持算子的部署之后执行,即将子模型部署于NPU,将不支持算子部署于CPU后,通过工程化将所有子模型和不支持算子的计算过程串接,完整最终的网络模型的部署。
在一种可能的实现方式中,通过工程化将所有已部署集合和不支持算子的计算过程串接,已部署集合可以为子模型,也可以为分支模型,串接顺序符合网络模型中的顺序关系。
可以理解地,网络模型可以为基于点云的全地形障碍物检测模型、物体识别模型以及其他复杂的计算模型。顺序关系表示每一个算子的输入接口和输出接口的连接关系。例如,网络模型包括四个算子,分别为A、B、C以及D算子。
顺序关系表现为A算子的输入接口作为网络模型的输入口,A算子的输出接口分别与B算子的输入接口和C算子的输入接口对接,B算子的输出接口和C算子的输出接口均与D算子的输入接口对接,D算子的输出接口作为网络模型的输出接口。
在图2的基础上,对于S101中的内容,本申请实施例还提供了一种可能的实现方式,请参考图7,S101包括S101-1和S101-2。
S101-1,依据边缘设备中NPU支持的算子构建算子字典。
可选地,依据NPU的算子支持说明,确定NPU支持的算子。
可以理解地,NPU的算子支持说明中包括NPU能够支持的所有算子的种类、结构或名称,通过算子支持说明可以统计或筛选出NPU能够支持的所有算子。
依据NPU支持的算子,构建算子字典。
可以理解地,将NPU能够支持的所有算子组合在一起即可构建算子字典。算子字典包括对应的NPU支持的所有算子。
S101-2,根据算子字典遍历网络模型,筛选出网络模型中NPU的不支持算子。
可选地,依据算子字典遍历网络模型图,筛选出不支持算子。
可以理解地,为了便于索引查找不支持算子,算子字典存储有NPU支持的算子列表。算子列表可以通过算子名称和类型进行索引。
请参阅图8,图8为本申请实施例提供的一种网络模型部署装置,可选的,该网络模型部署装置被应用于上文所述的边缘设备。
网络模型部署装置包括:处理单元201和部署单元202。
处理单元201,用于依据边缘设备中NPU支持的算子,筛选出网络模型中NPU的不支持算子。可选地,处理单元201可以执行上述的S101。
处理单元201还用于将不支持算子作为分界点,对网络模型进行拆分,以获得至少两个子模型。可选地,处理单元201可以执行上述的S102。
部署单元202,用于将子模型部署于NPU,将不支持算子部署于CPU。可选地,部署单元202可以执行上述的S103和S104。
在一种可能的实现方式中,部署单元202还用于在子模型的图复杂度超过NPU的复杂度上限的情况下,将子模型拆分为至少两个分支模型;其中,分支模型的图复杂度未超过NPU的复杂度上限;将分支模型分别部署于NPU。可选地,部署单元202可以执行上述的S103-1和S103-2。
在一种可能的实现方式中,部署单元202还用于依据网络模型的参数分布,对各个子模型进行量化;其中,网络模型的参数分布是网络模型在量化训练并收敛后的参数分布;将量化后的子模型部署于NPU。可选地,部署单元202可以执行上述的S103-3和S103-4。
在一种可能的实现方式中,处理单元201还用于通过工程化将所有子模型和不支持算子的计算过程串接;其中,串接顺序符合网络模型中的顺序关系。可选地,处理单元201可以执行上述的S105。
在一种可能的实现方式中,处理单元201还用于依据边缘设备中NPU支持的算子构建算子字典;根据算子字典遍历网络模型,筛选出网络模型中NPU的不支持算子。可选地,处理单元201可以执行上述的S101-1和S101-2。
需要说明的是,本实施例所提供的网络模型部署装置,其可以执行上述方法流程实施例所示的方法流程,以实现对应的技术效果。为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。
本申请实施例还提供了一种存储介质,该存储介质存储有计算机指令、程序,该计算机指令、程序在被读取并运行时执行上述实施例的网络模型部署方法。该存储介质可以包括内存、闪存、寄存器或者其结合等。
下面提供一种边缘设备,可以是便携式移动终端、计算机以及服务器等,该边缘设备如图1所示,可以实现上述的网络模型部署方法;具体的,该边缘设备包括:处理器10,存储器11、总线12。处理器10可以是CPU。存储器11用于存储一个或多个程序,当一个或多个程序被处理器10执行时,执行上述实施例的网络模型部署方法。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (11)
1.一种网络模型部署方法,其特征在于,所述方法包括:
依据边缘设备中NPU支持的算子,筛选出网络模型中所述NPU的不支持算子;
将所述不支持算子作为分界点,对所述网络模型进行拆分,以获得至少两个子模型;
将所述子模型部署于所述NPU,将所述不支持算子部署于CPU。
2.如权利要求1所述的网络模型部署方法,其特征在于,所述将所述子模型部署于所述NPU的步骤,包括:
在所述子模型的图复杂度超过所述NPU的复杂度上限的情况下,将所述子模型拆分为至少两个分支模型;
其中,所述分支模型的图复杂度未超过所述NPU的复杂度上限;
将所述分支模型分别部署于所述NPU。
3.如权利要求2所述的网络模型部署方法,其特征在于,所述图复杂度包括计算复杂度和/或图结构复杂度,所述计算复杂度用于表征所述子模型的总计算量,所述图结构复杂度用于表征所述子模型中最小不可分割算子的数量。
4.如权利要求1所述的网络模型部署方法,其特征在于,所述将所述子模型部署于所述NPU的步骤,包括:
依据所述网络模型的参数分布,对各个所述子模型进行量化;其中,所述网络模型的参数分布是所述网络模型在量化训练并收敛后的参数分布;
将量化后的子模型部署于所述NPU。
5.如权利要求1所述的网络模型部署方法,其特征在于,在将所述子模型部署于所述NPU,将所述不支持算子部署于CPU之后,还包括:
通过工程化将所有子模型和不支持算子的计算过程串接;
其中,串接顺序符合网络模型中的顺序关系。
6.如权利要求1所述的网络模型部署方法,其特征在于,在所述依据边缘设备中NPU支持的算子,筛选出网络模型中所述NPU的不支持算子的步骤,包括:
依据边缘设备中NPU支持的算子构建算子字典;
根据所述算子字典遍历网络模型,筛选出所述网络模型中所述NPU的不支持算子。
7.一种网络模型部署装置,其特征在于,所述装置包括:
处理单元,用于依据边缘设备中NPU支持的算子,筛选出网络模型中所述NPU的不支持算子;
所述处理单元还用于将所述不支持算子作为分界点,对所述网络模型进行拆分,以获得至少两个子模型;
部署单元,用于将所述子模型部署于所述NPU,将所述不支持算子部署于CPU。
8.如权利要求7所述的网络模型部署装置,其特征在于,所述部署单元还用于在所述子模型的图复杂度超过所述NPU的复杂度上限的情况下,将所述子模型拆分为至少两个分支模型;其中,所述分支模型的图复杂度未超过所述NPU的复杂度上限;将所述分支模型分别部署于所述NPU。
9.如权利要求7所述的网络模型部署装置,其特征在于,
所述部署单元还用于依据所述网络模型的参数分布,对各个所述子模型进行量化;其中,所述网络模型的参数分布是所述网络模型在量化训练并收敛后的参数分布;将量化后的子模型部署于所述NPU。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
11.一种边缘设备,其特征在于,包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111116953.0A CN113806095A (zh) | 2021-09-23 | 2021-09-23 | 一种网络模型部署方法、装置、存储介质及边缘设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111116953.0A CN113806095A (zh) | 2021-09-23 | 2021-09-23 | 一种网络模型部署方法、装置、存储介质及边缘设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113806095A true CN113806095A (zh) | 2021-12-17 |
Family
ID=78896479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111116953.0A Pending CN113806095A (zh) | 2021-09-23 | 2021-09-23 | 一种网络模型部署方法、装置、存储介质及边缘设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113806095A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110458294A (zh) * | 2019-08-19 | 2019-11-15 | Oppo广东移动通信有限公司 | 模型运行方法、装置、终端及存储介质 |
WO2020098414A1 (zh) * | 2018-11-13 | 2020-05-22 | Oppo广东移动通信有限公司 | 终端数据处理方法、装置及终端 |
CN112686378A (zh) * | 2020-12-23 | 2021-04-20 | 展讯通信(上海)有限公司 | 神经网络的计算部署方法及装置、存储介质、计算机设备 |
-
2021
- 2021-09-23 CN CN202111116953.0A patent/CN113806095A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020098414A1 (zh) * | 2018-11-13 | 2020-05-22 | Oppo广东移动通信有限公司 | 终端数据处理方法、装置及终端 |
CN110458294A (zh) * | 2019-08-19 | 2019-11-15 | Oppo广东移动通信有限公司 | 模型运行方法、装置、终端及存储介质 |
CN112686378A (zh) * | 2020-12-23 | 2021-04-20 | 展讯通信(上海)有限公司 | 神经网络的计算部署方法及装置、存储介质、计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112819153B (zh) | 一种模型转化方法及装置 | |
CN113033811B (zh) | 两量子比特逻辑门的处理方法及装置 | |
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
CN108733639B (zh) | 一种配置参数调整方法、装置、终端设备及存储介质 | |
EP3686813A1 (en) | Deep neural network-based method and device for quantifying activation amount | |
CN109635292B (zh) | 基于机器学习算法的工单质检方法和装置 | |
CN106681903B (zh) | 生成测试用例的方法及装置 | |
EP3846034B1 (en) | Systems and methods for automated testing using artificial intelligence techniques | |
CN114896395A (zh) | 语言模型微调方法、文本分类方法、装置及设备 | |
CN115934097A (zh) | 生成可执行语句的方法、装置、存储介质及电子装置 | |
CN113703739B (zh) | 基于omiga引擎的跨语言融合计算方法、系统及终端 | |
CN113360300B (zh) | 接口调用链路生成方法、装置、设备及可读存储介质 | |
CN113806095A (zh) | 一种网络模型部署方法、装置、存储介质及边缘设备 | |
CN117349763A (zh) | 确定人工智能应用的核函数的方法、计算设备和介质 | |
CN112035218A (zh) | 一种提供模型服务的方法、装置及设备 | |
CN112231942B (zh) | 物模型处理方法、装置和电子设备 | |
CN114626531A (zh) | 模型推理参数确定方法、装置、电子设备及存储介质 | |
CN114398496A (zh) | 文本的知识表示方法、装置、设备及计算机可读介质 | |
CN114385388B (zh) | 算法的处理方法、装置、电子设备及存储介质 | |
Atoui et al. | Using deep learning for recommending and completing deployment descriptors in nfv | |
CN115018150A (zh) | 样本生成方法、模型训练方法、存储介质及程序产品 | |
CN112085104B (zh) | 一种事件特征提取方法、装置、存储介质及电子设备 | |
CN113312880B (zh) | 文本形式转换方法、装置及电子设备 | |
JP7508841B2 (ja) | システム検証プログラム生成装置、システム検証プログラム生成方法およびシステム検証プログラム生成プログラム | |
CN117112490A (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 |