CN116523052B - 一种快速推理方法、装置及设备 - Google Patents
一种快速推理方法、装置及设备 Download PDFInfo
- Publication number
- CN116523052B CN116523052B CN202310815699.6A CN202310815699A CN116523052B CN 116523052 B CN116523052 B CN 116523052B CN 202310815699 A CN202310815699 A CN 202310815699A CN 116523052 B CN116523052 B CN 116523052B
- Authority
- CN
- China
- Prior art keywords
- directed graph
- tflite
- architecture
- information
- node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000005457 optimization Methods 0.000 claims description 23
- 238000010276 construction Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 10
- 238000013528 artificial neural network Methods 0.000 claims description 8
- 230000007613 environmental effect Effects 0.000 claims 1
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种快速推理方法、装置及设备,涉及人工智能技术领域,用于解决通用框架TFLite兼容性较差的问题。该方法包括:根据当前芯片类型与架构,对TFLite模型进行环境配置,获得配置后的TFLite模型;对所述配置后的TFLite模型进行解析,获取Tensor信息与Node信息;根据所述Tensor信息与所述Node信息,构建目标有向图;将待推理数据输入至所述目标有向图中进行推理,获取推理结果。
Description
技术领域
本申请涉及人工智能技术领域,提供一种快速推理方法、装置及设备。
背景技术
目前,随着人工智能(Artificial Intelligence,AI)的快速发展,许多大公司都推出了AI专用的计算芯片来加速AI的运算,但是,随着硬件设计和架构的快速迭代,通用框架与AI专用芯片之间的适配性越来越差,例如,通用框架TFLite。
通用框架TFLite是谷歌Google推出的一种用于设备端推理的开源深度学习框架,它支持大部分设备的图形处理器(Graphic Processing Unit,GPU)运算,以及谷歌Google、苹果Apple和高通Qualcomm的专用芯片运算。但是因为芯片架构之间的差异,通用框架TFLite目前并不支持华为麒麟Kirin的AI专用计算单元——网络处理器(neural-networkprocess units,NPU),而且随着高通芯片架构升级,通用框架TFLite不再支持高通的AI专用计算单元HTP——六边形张量处理器(Hexagon Tensor Processor,HTP)。
进而,由于当前的通用框架TFLite不再支持高通的AI专用计算单元HTP。因此,当要使用高通的HTP时,就只能使用高通的模型框架SNPE。然而,由于模型框架SNPE相对较新,且很多前人的工作都是基于其他框架进行开发的,进而,导致通用框架TFLite并不适用于某些专用芯片,使得通用框架TFLite兼容性较差。
因此,如何提高通用框架TFLite的兼容性是一个亟待解决的问题。
发明内容
本申请提供一种快速推理方法、装置及设备,用于解决通用框架TFLite兼容性较差的问题。
一方面,提供一种快速推理方法,所述方法包括:
根据当前芯片类型与架构,对TFLite模型进行环境配置,获得配置后的TFLite模型;
对所述配置后的TFLite模型进行解析,获取Tensor信息与Node信息;
根据所述Tensor信息与所述Node信息,构建目标有向图;
将待推理数据输入至所述目标有向图中进行推理,获取推理结果。
一方面,提供一种快速推理装置,所述装置包括:
环境配置单元,用于根据当前芯片类型与架构,对TFLite模型进行环境配置,获得配置后的TFLite模型;
信息获取单元,用于对所述配置后的TFLite模型进行解析,获取Tensor信息与Node信息;
目标有向图构建单元,用于根据Tensor信息与Node信息,构建目标有向图;
推理结果获取单元,用于将待推理数据输入至所述目标有向图中进行推理,获取推理结果。
可选的,所述环境配置单元,还用于:
若所述当前芯片类型在预设的第一芯片类型范围内,且所述架构为预设的第一架构,则使用神经网络架构Hexagon NN对TFLite模型进行环境配置,获得配置后的TFLite模型;
若所述当前芯片类型在预设的第二芯片类型范围内,且所述架构为预设的第二架构,则使用量子神经网络架构QNN对TFLite模型进行环境配置,获得配置后的TFLite模型;
若所述当前芯片类型在预设的第三芯片类型范围内,且所述架构为预设的第三架构,则使用华为架构HiAI对TFLite模型进行环境配置,获得配置后的TFLite模型。
可选的,所述装置还包括数据拷贝单元,所述数据拷贝单元,用于:
若所述当前芯片类型在预设的第一芯片类型范围内,且所述架构为预设的第一架构,则将库libhexagon_nn_skel.so、库libhexagon_nn_skel_v65.so以及库libhexagon_nn_skel_v66.so拷贝到当前设备中;
若所述当前芯片类型在预设的第二芯片类型范围内,且所述架构为预设的第二架构,则将库libQnnHtpPrepare.so和所述架构的库拷贝到当前设备中;
若所述当前芯片类型在预设的第三芯片类型范围内,且所述架构为预设的第三架构,则将库libhiai.so、库libhiai_enhance.so以及库libhiai_hcl_model_runtime.so拷贝到当前设备中。
可选的,所述目标有向图构建单元,还用于:
根据所述Tensor信息与所述Node信息,构建第一有向图;
创建一个空图,将所述第一有向图中的输入层和输出层添加到所述空图中,并将所述Tensor信息作为参数传入,获得第二有向图;
根据所述Node信息按序创建节点,并将所述节点添加到所述第二有向图中,获得所述目标有向图。
可选的,所述目标有向图构建单元,还用于:
根据所述Tensor信息与所述Node信息,以各个Tensor为点,各个Node为边,进行拓扑排序,构建所述第一有向图;其中,并联分支按照Node的数量以及Node的类别优先级进行排序。
可选的,所述目标有向图构建单元,还用于:
根据使用的SDK进行层创建,获取所述配置后的TFLite模型的各个Tensor 对应的层信息;
则,所述根据所述Node信息按序创建节点,并将所述节点添加到所述第二有向图中,获得所述目标有向图,包括:
根据所述Node信息按序创建节点,并将所述节点添加到所述第二有向图中;
将所述各个Tensor 对应的层信息作为参数传入,并根据所述Tensor信息调整所述节点参数,获得所述目标有向图。
可选的,所述目标有向图构建单元,还用于:
若所述SDK中没有与任一 Node对应的节点,则在所述第二有向图中设置一个空节点。
可选的,所述目标有向图构建单元,还用于:
在节点遍历过程中,确定TFLite Node序列是否满足预设的优化条件;
若确定TFLite Node序列满足预设的优化条件,则将所述TFLite Node序列替换为预设的优化算子库中的优化序列。
一方面,提供一种快速推理的设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种方法的步骤。
一方面,提供一种计算机存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
本申请实施例中,首先,可以根据当前芯片类型与架构,来对TFLite模型进行环境配置,以获得配置后的TFLite模型,然后,可以对该配置后的TFLite模型进行解析,以获取Tensor信息与Node信息,进一步的,可以根据Tensor信息与Node信息,构建目标有向图,最后,用户可以将待推理数据输入至该目标有向图中进行推理,以获取推理结果。因此,在本申请实施例中,由于针对不同的芯片类型与架构,会对TFLite模型进行相应的环境配置,以使TFLite模型能够适用于不同的专用芯片与架构,而无需针对不同的专用芯片去特意调用专用模型框架,大大提高了TFLite模型的兼容性,降低了TFLite用户的学习成本,此外,由于还根据Tensor信息与Node信息,构建了目标有向图来进行数据推理,使得大大提高了数据推理的效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的快速推理方法的一种流程示意图;
图3为本申请实施例提供的TFLite模型解析的一种示意图;
图4 为本申请实施例提供的构建有向图的一种流程示意图;
图5为本申请实施例提供的快速推理装置的一种示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
目前,随着人工智能(Artificial Intelligence,AI)的快速发展,许多大公司都推出了AI专用的计算芯片来加速AI的运算,但是,随着硬件设计和架构的快速迭代,通用框架与AI专用芯片之间的适配性越来越差,例如,通用框架TFLite。
通用框架TFLite是谷歌Google推出的一种用于设备端推理的开源深度学习框架,它支持大部分设备的图形处理器(Graphic Processing Unit,GPU)运算,以及谷歌Google、苹果Apple和高通Qualcomm的专用芯片运算。但是因为芯片架构之间的差异,通用框架TFLite目前并不支持华为麒麟Kirin的AI专用计算单元——网络处理器(neural-networkprocess units,NPU),而且随着高通芯片架构升级,通用框架TFLite不再支持高通的AI专用计算单元HTP——六边形张量处理器(Hexagon Tensor Processor,HTP)。
进而,由于当前的通用框架TFLite不再支持高通的AI专用计算单元HTP。因此,当要使用高通的HTP时,就只能使用高通的模型框架SNPE。然而,由于模型框架SNPE相对较新,且很多前人的工作都是基于其他框架进行开发的,进而,导致通用框架TFLite并不适用于某些专用芯片,使得通用框架TFLite兼容性较差。
基于此,首先,可以根据当前芯片类型与架构,来对TFLite模型进行环境配置,以获得配置后的TFLite模型,然后,可以对该配置后的TFLite模型进行解析,以获取Tensor信息与Node信息,进一步的,可以根据Tensor信息与Node信息,构建目标有向图,最后,用户可以将待推理数据输入至该目标有向图中进行推理,以获取推理结果。因此,在本申请实施例中,由于针对不同的芯片类型与架构,会对TFLite模型进行相应的环境配置,以使TFLite模型能够适用于不同的专用芯片与架构,而无需针对不同的专用芯片去特意调用专用模型框架,大大提高了TFLite模型的兼容性,降低了TFLite用户的学习成本,此外,由于还根据Tensor信息与Node信息,构建了目标有向图来进行数据推理,使得大大提高了数据推理的效率。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
如图1所示,为本申请实施例提供的一种应用场景示意图。该应用场景中可以包括快速推理设备10。
其中,快速推理设备10具备对用户输入的待推理数据进行推理等功能,快速推理设备10可包括一个或者多个中央处理器101(Central Processing Unit,CPU)、存储器102、I/O接口103以及数据库104。具体的,处理器101可以为中央处理单元(central processingunit,CPU),或者为数字处理单元等等。存储器102可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM);存储器102也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器102是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器102可以是上述存储器的组合。存储器102中可以存储本申请实施例提供的快速推理方法的部分程序指令,这些程序指令被处理器101执行时能够用以实现本申请实施例提供的快速推理方法的步骤,以解决通用框架TFLite兼容性较差的问题。数据库104可以用于存储本申请实施例提供的方案中涉及到的待推理数据、Tensor信息与Node信息等数据。
在本申请实施例中,当需要对某些待推理数据进行推理时,快速推理设备10可以通过I/O接口103暂时接收这些数据,然后,快速推理设备10的处理器101会按照存储器102中本申请实施例提供的快速推理方法的程序指令进行通用框架TFLite的初始化与重构,以获取目标框架TFLite,进而,该目标框架TFLite便可以对输入的待推理数据进行推理。此外,还可以将待推理数据、Tensor信息与Node信息等数据存储于数据库104中。
当然,本申请实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其他可能的应用场景,本申请实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。下面,将结合附图对本申请实施例的方法进行介绍。
如图2所示,为本申请实施例提供的快速推理方法的一种流程示意图,该方法可以通过图1中的快速推理设备10来执行,该方法的流程介绍如下。
步骤201:根据当前芯片类型与架构,对TFLite模型进行环境配置,获得配置后的TFLite模型。
在本申请实施例中,可通过Java接口和Python接口这2种接口进行软件开发工具包(Software Development Kit,SDK)调用,即,可以采用Java或者Python来进行程序开发。在此基础上,为了使得TFLite模型的兼容性更好,能够更适用于某些专用芯片,例如,具有AI专用计算单元HTP的高通芯片以及具有AI专用计算单元NPU的华为麒麟Kirin芯片,在本申请中,可对通用框架TFLite进行如下环境配置过程:
(1)若当前芯片类型在预设的第一芯片类型范围内,且架构为预设的第一架构,则使用神经网络架构Hexagon NN对TFLite模型进行环境配置,以获得配置后的TFLite模型。
例如,若当前待开发芯片的芯片类型为高通V66及其以下的类型(高通V66、高通V65、高通V62以及高通V60等)中的一种,且架构为Hexagon,则在对TFLite模型进行环境配置时,可采用Hexagon NN对TFLite模型进行环境配置,以获得配置后的TFLite模型。此时,配置后的TFLite模型已初步具备在高通V66及其以下架构上调用HTP的功能。
(2)若当前芯片类型在预设的第二芯片类型范围内,且架构为预设的第二架构,则使用量子神经网络架构QNN对TFLite模型进行环境配置,以获得配置后的TFLite模型。
例如,若当前待开发芯片的芯片类型为高通V68及其以上的类型(高通V68、高通V69以及高通V73等)中的一种,且架构为Hexagon,则在对TFLite模型进行环境配置时,可采用QNN来对TFLite模型进行环境配置,以获得获得配置后的TFLite模型。此时,获得配置后的TFLite模型已初步具备在高通V68及其以上架构上调用数字信号处理(Digital SignalProcessing,DSP)的功能。
(3)若当前芯片类型在预设的第三芯片类型范围内,且架构为预设的第三架构,则使用华为架构HiAI对TFLite模型进行环境配置,获得配置后的TFLite模型。
例如,若当前待开发芯片的芯片类型为华为麒麟Kirin芯片,且架构为Hexagon,则在对TFLite模型进行环境配置时,可采用HiAI来对TFLite模型进行环境配置,以获得配置后的TFLite模型。此时,配置后的TFLite模型已初步具备在华为Kirin设备上调用NPU的功能。
进一步的,在进行环境配置时,为了便于进行程序开发,还可以将对应硬件所需的库拷贝到设备的对应位置,具体如下:
(1)若所述当前芯片类型在预设的第一芯片类型范围内,且所述架构为预设的第一架构,则将库libhexagon_nn_skel.so、库libhexagon_nn_skel_v65.so以及库libhexagon_nn_skel_v66.so拷贝到当前设备中。
例如,若当前待开发芯片的芯片类型为高通V66及其以下的类型(高通V66、高通V65、高通V62以及高通V60等)中的一种,且架构为Hexagon,则在对TFLite模型进行环境配置时,还可以将库libhexagon_nn_skel.so、库libhexagon_nn_skel_v65.so以及库libhexagon_nn_skel_v66.so拷贝到当前设备中。
(2)若当前芯片类型在预设的第二芯片类型范围内,且所述架构为预设的第二架构,则将库libQnnHtpPrepare.so和所述架构的库拷贝到当前设备中。
例如,若当前待开发芯片的芯片类型为高通V68及其以上的类型(高通V68、高通V69以及高通V73等)中的一种,且架构为Hexagon,则在对TFLite模型进行环境配置时,还可以将库libQnnHtpPrepare.so和所述架构的库(例如,高通V68所对应的库为libQnnHtpV68Stub.so)拷贝到当前设备中。
(3)若当前芯片类型在预设的第三芯片类型范围内,且所述架构为预设的第三架构,则将库libhiai.so、库libhiai_enhance.so以及库libhiai_hcl_model_runtime.so拷贝到当前设备中。
例如,若当前待开发芯片的芯片类型为华为麒麟Kirin芯片,且架构为Hexagon,则在对TFLite模型进行环境配置时,还可以将库libhiai.so、库libhiai_enhance.so以及库libhiai_hcl_model_runtime.so拷贝到当前设备中。
在实际应用时, 高通设备还需额外设置环境变量ADSP_LIBRARY_PATH。当然,在进行TFLite模型进行环境配置之前,还可以调用AidLite接口,来将TFLite模型以及TFLite模型的相关参数传入当前设备中。此外,还可以根据获取的硬件信息,来确定当前待开发芯片的芯片类型与架构。
步骤202:对配置后的TFLite模型进行解析,获取Tensor信息与Node信息。
在本申请实施例中,如图3所示,为本申请实施例提供的TFLite模型解析的一种示意图,可以调用Google官方提供的TFLite模型的结构、标准来对配置后的TFLite模型进行解析,即,Google的TFLite模型提供了相关接口,可以将TFLite模型解析成单一算子,以获取Tensor信息与Node信息。
步骤203:根据Tensor信息与Node信息,构建目标有向图。
在本申请实施例中,为了能够加速推理过程,可以根据解析获得的Tensor信息与Node信息,来构建目标有向图,以使能够快速对用户输入的数据进行推理。如图4所示,为本申请实施例提供的构建有向图的一种流程示意图,具体构建过程如下:
步骤401:根据Tensor信息与Node信息,构建第一有向图。
在本申请实施例中,可以根据Tensor信息与Node信息,以各个Tensor为点,各个Node为边,进行拓扑排序,构建来第一有向图,其中,在具体进行排序时,并联分支可以按照“Node的数量”以及“Node的类别优先级”进行排序。当然,构建第一有向图之前,还可以根据所使用的SDK进行层创建,以获取配置后的TFLite模型的各个Tensor 对应的层信息,即,可以获取配置后的tflite模型的Tensor ID和新创建的层 ID之间的对应关系。
步骤402:创建一个空图,将第一有向图中的输入层和输出层添加到空图中,并将Tensor信息作为参数传入,获得第二有向图。
步骤403:根据Node信息按序创建节点,并将节点添加到第二有向图中,获得目标有向图。
在本申请实施例中, 可以根据配置后的TFLite模型的Node信息来按序创建节点,进而,可以将创建的节点添加到在二有向图中, 且还可以将配置后的TFLite模型各个Tensor 对应的层信息作为参数进行传入,并根据Tensor信息调整所创建的节点的参数,以获得目标有向图。
在一种可能的实施方式中,在获取目标有向图时,若所SDK中没有与TFLite Node对应的节点,则在第二有向图中设置一个空节点。进而,若最终构建完的目标有向图中含有空节点,则需要返回错误信息。
在另一种可能的实施方式中,为提高推理效率,在本申请实施例中,可以对有向图进行优化。具体的,在节点遍历过程中,可以先确定TFLite Node序列是否满足预设的优化条件,若确定TFLite Node序列满足预设的优化条件,则可以将TFLite Node序列替换为预设的优化算子库中的优化序列。例如,当需要对推理速度进行优化时,则可以确定TFLiteNode序列是否短于预设的优化算子库中的优化序列,若确定TFLite Node序列短于预设的优化算子库中的优化序列,则可以将TFLite Node序列替换为优化序列,以使得对不同的硬件,某些TFLite Node序列可以对应更少的节点序列,以获得更快地推理。当然,若需要对支持率进行优化,则可以确定TFLite Node序列是否为不支持的节点序列,若确定TFLiteNode序列为不支持的节点序列,则可以将TFLite Node序列替换为优化算子库中的为支持的节点序列,此时,替换后的为支持的节点序列的节点数可能比原TFLite Node序列的节点数少,也可能比原TFLite Node序列的节点数多。
步骤204:将待推理数据输入至目标有向图中进行推理,获取推理结果。
在实际应用中,目标有向图构建完成之后,该目标有向图可以接受用户待推理的Python数据输入,并将该Python数据解析到对应的内存地址,进而,可以将该待推理的Python数据传入到目标有向图中进行推理,以获取推理结果,并将该推理结果转为python数据返回给用户。
在一种可能的实施方式中,为进一步提高推理效率,在本申请实施例中,还可以进行算子优化。具体的,可以对一些算子的参数进行修改来提升性能,比如卷积算子的per-tensor量化,可以先将参数矩阵反量化为32位浮点数,再使用per-cha nnel量化将浮点参数重量化,并将对应信息保存到节点中。
在一种可能的实施方式中,在对TFLite模型进行环境配置的过程中,可以根据芯片类型查询对应的库是否存在,如果不存在,则可以将该芯片类型对应的库拷贝到对应位置。当然,在拷贝过程中,需要打开并加载芯片专用的计算库,验证是否匹配,是否有权限不够,是否有第三方依赖缺失的问题。
综上所述,在本申请实施例中,由于针对不同的芯片类型与架构,会对TFLite模型进行相应的环境配置,以使TFLite模型能够适用于不同的专用芯片与架构,而无需针对不同的专用芯片去特意调用专用模型框架,大大提高了TFLite模型的兼容性,降低了TFLite用户的学习成本,此外,由于还根据Tensor信息与Node信息,构建了目标有向图来进行数据推理,使得大大提高了数据推理的效率。
基于同一发明构思,本申请实施例提供一种快速推理装置50,如图5所示,该装置包括:
环境配置单元501,用于根据当前芯片类型与架构,对TFLite模型进行环境配置,获得配置后的TFLite模型;
信息获取单元502,用于对配置后的TFLite模型进行解析,获取Tensor信息与Node信息;
目标有向图构建单元503,用于根据Tensor信息与Node信息,构建目标有向图;
推理结果获取单元504,用于将待推理数据输入至目标有向图中进行推理,获取推理结果。
可选的,环境配置单元501,还用于:
若当前芯片类型在预设的第一芯片类型范围内,且架构为预设的第一架构,则使用神经网络架构Hexagon NN对TFLite模型进行环境配置,获得配置后的TFLite模型;
若当前芯片类型在预设的第二芯片类型范围内,且架构为预设的第二架构,则使用量子神经网络架构QNN对TFLite模型进行环境配置,获得配置后的TFLite模型;
若当前芯片类型在预设的第三芯片类型范围内,且架构为预设的第三架构,则使用华为架构HiAI对TFLite模型进行环境配置,获得配置后的TFLite模型。
可选的,装置50还包括数据拷贝单元505,数据拷贝单元505,用于:
若当前芯片类型在预设的第一芯片类型范围内,且架构为预设的第一架构,则将库libhexagon_nn_skel.so、库libhexagon_nn_skel_v65.so以及库libhexagon_nn_skel_v66.so拷贝到当前设备中;
若当前芯片类型在预设的第二芯片类型范围内,且架构为预设的第二架构,则将库libQnnHtpPrepare.so和架构的库拷贝到当前设备中;
若当前芯片类型在预设的第三芯片类型范围内,且架构为预设的第三架构,则将库libhiai.so、库libhiai_enhance.so以及库libhiai_hcl_model_runtime.so拷贝到当前设备中。
可选的,目标有向图构建单元503,还用于:
根据Tensor信息与Node信息,构建第一有向图;
创建一个空图,将第一有向图中的输入层和输出层添加到空图中,并将Tensor信息作为参数传入,获得第二有向图;
根据Node信息按序创建节点,并将节点添加到第二有向图中,获得目标有向图。
可选的,目标有向图构建单元503,还用于:
根据Tensor信息与Node信息,以各个Tensor为点,各个Node为边,进行拓扑排序,构建第一有向图;其中,并联分支按照Node的数量以及Node的类别优先级进行排序。
可选的,目标有向图构建单元503,还用于:
根据使用的SDK进行层创建,获取配置后的TFLite模型的各个Tensor 对应的层信息;
则,根据Node信息按序创建节点,并将节点添加到第二有向图中,获得目标有向图,包括:
根据Node信息按序创建节点,并将节点添加到第二有向图中;
将各个Tensor 对应的层信息作为参数传入,并根据Tensor信息调整节点参数,获得目标有向图。
可选的,目标有向图构建单元503,还用于:
若SDK中没有与任一 Node对应的节点,则在第二有向图中设置一个空节点。
可选的,目标有向图构建单元503,还用于:
在节点遍历过程中,确定TFLite Node序列是否满足预设的优化条件;
若确定TFLite Node序列满足预设的优化条件,则将TFLite Node序列替换为预设的优化算子库中的优化序列。
该装置可以用于执行图2~图4所示的实施例中快速推理装置所执行的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图2~图4所示的实施例的描述,不多赘述。
在一些可能的实施方式中,本申请提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行如图2~图4所示的实施例中快速推理装置所执行的方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、 RAM、磁碟或者光盘等各种可以存储程序代码的介质。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种快速推理方法,其特征在于,所述方法包括:
根据当前芯片类型与架构,对TFLite模型进行环境配置,获得配置后的TFLite模型;
对所述配置后的TFLite模型进行解析,获取Tensor信息与Node信息;
根据所述Tensor信息与所述Node信息,构建第一有向图;
创建一个空图,将所述第一有向图中的输入层和输出层添加到所述空图中,并将所述Tensor信息作为参数传入,获得第二有向图;
根据所述Node信息按序创建节点,并将所述节点添加到所述第二有向图中,获得目标有向图;
将待推理数据输入至所述目标有向图中进行推理,获取推理结果。
2.如权利要求1所述的方法,其特征在于,所述根据当前芯片类型与架构,对TFLite模型进行环境配置,获得配置后的TFLite模型,包括:
若所述当前芯片类型在预设的第一芯片类型范围内,且所述架构为预设的第一架构,则使用神经网络架构Hexagon NN对TFLite模型进行环境配置,获得配置后的TFLite模型;
若所述当前芯片类型在预设的第二芯片类型范围内,且所述架构为预设的第二架构,则使用量子神经网络架构QNN对TFLite模型进行环境配置,获得配置后的TFLite模型;
若所述当前芯片类型在预设的第三芯片类型范围内,且所述架构为预设的第三架构,则使用华为架构HiAI对TFLite模型进行环境配置,获得配置后的TFLite模型。
3.如权利要求1所述的方法,其特征在于,在对所述配置后的TFLite模型进行解析,获取Tensor信息与Node信息之前,所述方法还包括:
若所述当前芯片类型在预设的第一芯片类型范围内,且所述架构为预设的第一架构,则将库libhexagon_nn_skel.so、库libhexagon_nn_skel_v65.so以及库libhexagon_nn_skel_v66.so拷贝到当前设备中;
若所述当前芯片类型在预设的第二芯片类型范围内,且所述架构为预设的第二架构,则将库libQnnHtpPrepare.so和所述架构的库拷贝到当前设备中;
若所述当前芯片类型在预设的第三芯片类型范围内,且所述架构为预设的第三架构,则将库libhiai.so、库libhiai_enhance.so以及库libhiai_hcl_model_runtime.so拷贝到当前设备中。
4.如权利要求1所述的方法,其特征在于,所述根据所述Tensor信息与所述Node信息,构建第一有向图,包括:
根据所述Tensor信息与所述Node信息,以各个Tensor为点,各个Node为边,进行拓扑排序,构建所述第一有向图;其中,并联分支按照Node的数量以及Node的类别优先级进行排序。
5.如权利要求1所述的方法,其特征在于,在根据所述Tensor信息与所述Node信息,构建第一有向图之前,所述方法还包括:
根据使用的SDK进行层创建,获取所述配置后的TFLite模型的各个Tensor对应的层信息;
则,所述根据所述Node信息按序创建节点,并将所述节点添加到所述第二有向图中,获得所述目标有向图,包括:
根据所述Node信息按序创建节点,并将所述节点添加到所述第二有向图中;
将所述各个Tensor 对应的层信息作为参数传入,并根据所述Tensor信息调整所述节点参数,获得所述目标有向图。
6.如权利要求5所述的方法,其特征在于,在根据所述Node信息按序创建节点,并将所述节点添加到在所述第二有向图中,获得所述目标有向图之前,所述方法还包括:
若所述SDK中没有与任一Node对应的节点,则在所述第二有向图中设置一个空节点。
7.如权利要求1所述的方法,其特征在于,在根据所述Node信息按序创建节点,并将所述节点添加到在所述第二有向图中,获得所述目标有向图之前,所述方法还包括:
在节点遍历过程中,确定TFLite Node序列是否满足预设的优化条件;
若确定TFLite Node序列满足预设的优化条件,则将所述TFLite Node序列替换为预设的优化算子库中的优化序列。
8.一种快速推理装置,其特征在于,所述装置包括:
环境配置单元,用于根据当前芯片类型与架构,对TFLite模型进行环境配置,获得配置后的TFLite模型;
信息获取单元,用于对所述配置后的TFLite模型进行解析,获取Tensor信息与Node信息;
目标有向图构建单元,用于根据所述Tensor信息与所述Node信息,构建第一有向图;创建一个空图,将所述第一有向图中的输入层和输出层添加到所述空图中,并将所述Tensor信息作为参数传入,获得第二有向图;根据所述Node信息按序创建节点,并将所述节点添加到所述第二有向图中,获得目标有向图;
推理结果获取单元,用于将待推理数据输入至所述目标有向图中进行推理,获取推理结果。
9.一种快速推理设备,其特征在于,所述设备包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行权利要求1-7中任一所述的方法包括的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310815699.6A CN116523052B (zh) | 2023-07-05 | 2023-07-05 | 一种快速推理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310815699.6A CN116523052B (zh) | 2023-07-05 | 2023-07-05 | 一种快速推理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116523052A CN116523052A (zh) | 2023-08-01 |
CN116523052B true CN116523052B (zh) | 2023-08-29 |
Family
ID=87392604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310815699.6A Active CN116523052B (zh) | 2023-07-05 | 2023-07-05 | 一种快速推理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116523052B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020014590A1 (en) * | 2018-07-12 | 2020-01-16 | Futurewei Technologies, Inc. | Generating a compressed representation of a neural network with proficient inference speed and power consumption |
WO2020164469A1 (zh) * | 2019-02-12 | 2020-08-20 | Oppo广东移动通信有限公司 | 神经网络计算方法、装置、移动终端及存储介质 |
CN111832036A (zh) * | 2019-07-16 | 2020-10-27 | 北京骑胜科技有限公司 | 数据处理方法、装置、存储介质和电子设备 |
WO2021022962A1 (zh) * | 2019-08-08 | 2021-02-11 | 华为技术有限公司 | 基于图形渲染管线的模型推理方法、装置及存储介质 |
CN112836659A (zh) * | 2021-02-08 | 2021-05-25 | 国网电力科学研究院武汉南瑞有限责任公司 | 输电线路智能巡检机器人缺陷识别系统及识别方法 |
CN113811897A (zh) * | 2019-12-30 | 2021-12-17 | 深圳元戎启行科技有限公司 | 神经网络模型的推理方法、装置、计算机设备和存储介质 |
CN113988299A (zh) * | 2021-09-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | 支持多模型多芯片的推理服务器的部署方法、系统及电子设备 |
WO2022141489A1 (zh) * | 2020-12-31 | 2022-07-07 | 深圳元戎启行科技有限公司 | 深度学习模型的推理方法、装置、计算机设备和存储介质 |
CN115562707A (zh) * | 2022-09-30 | 2023-01-03 | 重庆长安汽车股份有限公司 | 一种车载终端模型部署方法、装置、设备及介质 |
CN115756833A (zh) * | 2022-11-07 | 2023-03-07 | 福建亿榕信息技术有限公司 | 一种面向多重异构环境下ai推理任务调度的方法及系统 |
CN115809699A (zh) * | 2023-02-03 | 2023-03-17 | 之江实验室 | 神经网络模型推理所需最小内存占用量的估计方法和装置 |
CN115906988A (zh) * | 2021-09-28 | 2023-04-04 | 广州视源电子科技股份有限公司 | 神经网络推理架构的创建方法、神经网络推理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11507662B2 (en) * | 2019-02-04 | 2022-11-22 | Sateesh Kumar Addepalli | Systems and methods of security for trusted artificial intelligence hardware processing |
-
2023
- 2023-07-05 CN CN202310815699.6A patent/CN116523052B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020014590A1 (en) * | 2018-07-12 | 2020-01-16 | Futurewei Technologies, Inc. | Generating a compressed representation of a neural network with proficient inference speed and power consumption |
WO2020164469A1 (zh) * | 2019-02-12 | 2020-08-20 | Oppo广东移动通信有限公司 | 神经网络计算方法、装置、移动终端及存储介质 |
CN111832036A (zh) * | 2019-07-16 | 2020-10-27 | 北京骑胜科技有限公司 | 数据处理方法、装置、存储介质和电子设备 |
WO2021022962A1 (zh) * | 2019-08-08 | 2021-02-11 | 华为技术有限公司 | 基于图形渲染管线的模型推理方法、装置及存储介质 |
CN113811897A (zh) * | 2019-12-30 | 2021-12-17 | 深圳元戎启行科技有限公司 | 神经网络模型的推理方法、装置、计算机设备和存储介质 |
WO2022141489A1 (zh) * | 2020-12-31 | 2022-07-07 | 深圳元戎启行科技有限公司 | 深度学习模型的推理方法、装置、计算机设备和存储介质 |
CN112836659A (zh) * | 2021-02-08 | 2021-05-25 | 国网电力科学研究院武汉南瑞有限责任公司 | 输电线路智能巡检机器人缺陷识别系统及识别方法 |
CN113988299A (zh) * | 2021-09-27 | 2022-01-28 | 苏州浪潮智能科技有限公司 | 支持多模型多芯片的推理服务器的部署方法、系统及电子设备 |
CN115906988A (zh) * | 2021-09-28 | 2023-04-04 | 广州视源电子科技股份有限公司 | 神经网络推理架构的创建方法、神经网络推理方法及装置 |
CN115562707A (zh) * | 2022-09-30 | 2023-01-03 | 重庆长安汽车股份有限公司 | 一种车载终端模型部署方法、装置、设备及介质 |
CN115756833A (zh) * | 2022-11-07 | 2023-03-07 | 福建亿榕信息技术有限公司 | 一种面向多重异构环境下ai推理任务调度的方法及系统 |
CN115809699A (zh) * | 2023-02-03 | 2023-03-17 | 之江实验室 | 神经网络模型推理所需最小内存占用量的估计方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于网络结构搜索的移动终端OCR模型设计与开发;严静;《中国优秀硕士学位论文全文数据库信息科技辑》(第03期);I138-474 * |
Also Published As
Publication number | Publication date |
---|---|
CN116523052A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10423445B2 (en) | Composing and executing workflows made up of functional pluggable building blocks | |
US11003511B2 (en) | Controlling runtime access to application program interfaces | |
US9841953B2 (en) | Pluggable components for runtime-image generation | |
CN106796522A (zh) | 用于更新源代码文件的系统和方法 | |
CN110598855B (zh) | 深度学习模型生成方法、装置、设备及存储介质 | |
WO2019242586A1 (zh) | 训练模型的实现方法、设备以及存储介质 | |
CN110929883A (zh) | 一种在TensorFlow中支持FPGA训练的方法和装置 | |
US8615729B2 (en) | Extending existing model-to-model transformations | |
US9116714B2 (en) | Methods and systems for file processing | |
US8935657B2 (en) | Model-to-model transformation by kind | |
US11379712B2 (en) | Avoiding cycles in neural networks | |
CN116974581B (zh) | 代码生成方法、装置、电子设备和存储介质 | |
CN116523052B (zh) | 一种快速推理方法、装置及设备 | |
US10338891B2 (en) | Migration between model elements of different types in a modeling environment | |
CN116107669A (zh) | 深度学习框架的算子注册方法、装置、设备及存储介质 | |
WO2022135592A1 (zh) | 模型训练程序镜像的生成方法、装置、设备及存储介质 | |
KR102376527B1 (ko) | Dnn 프레임워크를 이용하는 단일 가속기용 프로그램을 복수의 가속기에서 처리하는 방법 및 컴퓨터 프로그램 | |
CN110837367B (zh) | 用户界面处理方法、装置及电子设备 | |
CN104572097A (zh) | 一种拍照数据回调处理方法以及装置 | |
CN116755714B (zh) | 深度神经网络模型的运行方法、装置、设备和存储介质 | |
CN111796806B (zh) | 生成对象的方法、装置、电子设备及可读存储介质 | |
CN114003228B (zh) | 界面更新方法、装置、计算机设备以及存储介质 | |
US10545742B2 (en) | Annotation-driven framework for generating state machine updates | |
WO2023028996A1 (en) | Methods and devices for ensuring the reproducibility of software systems | |
EP4170482A1 (en) | Deployment of machine learned models to plurality of devices |
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 | ||
CP02 | Change in the address of a patent holder |
Address after: Room 701-703, 7th Floor, Zone A, Building 1, No. 200 Tianfu Fifth Street, High tech Zone, Chengdu, Sichuan, 610000 Patentee after: Chengdu agaxi Intelligent Technology Co.,Ltd. Address before: 610000 b7-508, No. 99, Tianhua 1st Road, high tech Zone, Chengdu, Sichuan Patentee before: Chengdu agaxi Intelligent Technology Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |