CN117078569A - 神经网络模型推理框架的处理方法和装置、电子设备 - Google Patents
神经网络模型推理框架的处理方法和装置、电子设备 Download PDFInfo
- Publication number
- CN117078569A CN117078569A CN202210480418.1A CN202210480418A CN117078569A CN 117078569 A CN117078569 A CN 117078569A CN 202210480418 A CN202210480418 A CN 202210480418A CN 117078569 A CN117078569 A CN 117078569A
- Authority
- CN
- China
- Prior art keywords
- model
- hardware
- neural network
- current
- operator
- 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
- 238000003062 neural network model Methods 0.000 title claims abstract description 165
- 238000003672 processing method Methods 0.000 title abstract description 12
- 238000006243 chemical reaction Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 13
- 230000007704 transition Effects 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 2
- 239000003550 marker Substances 0.000 claims 1
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000013527 convolutional neural network Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000002194 synthesizing effect Effects 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种神经网络模型推理框架的处理方法,包括:获取神经网络模型;获取硬件参数列表,获取硬件参数列表中的硬件参数与支持的模型算子间的匹配关系;遍历所述神经网络模型中的各个模型算子且遍历所述硬件参数列表中的各个硬件参数,基于所述匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型;基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对所述转换神经网络模型进行编译运行,增强了推理框架对神经网络模型的兼容性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种神经网络模型推理框架的处理方法和装置、电子设备以及计算机可读存储介质。
背景技术
随着人工智能技术的发展,神经网络的应用也越来越广泛。为了支持神经网络的应用,各大厂商都在生产可以运行神经网络的芯片。
当一芯片支持的平台要运行神经网络时,则在所述平台上部署具有该神经网络模型推理,将数据输入到该神经网络模型推理中执行即可实现。然而,使用编译器提供的编译工具,在编译环境根据用户指定的硬件参数进行编译生成编译模型,在模型部署时只能按照编译时指定的硬件参数运行。如果部署环境中,对应硬件状态不符合要求,则模型无法进行推理。
发明内容
本申请实施例提供一种神经网络模型推理框架的处理方法和装置、电子设备以及计算机可读存储介质,可以在模型转换环境中,模型编译过程中,根据部署环境中支持的硬件,对神经网络模型中的算子进行标记,在部署时,根据神经网络模型中算子标记的结果和运行时环境实时的硬件状态进行动态编译运行,增强了推理框架对神经网络模型的兼容性。
一种神经网络模型推理框架的处理方法,包括:
获取待显示的各个图层对应的图层图像分辨率;
从候选屏幕分辨率中按分辨率从小至大的顺序选择目标屏幕分辨率,所述各个图层对应的图层图像分辨率均小于或等于所述目标屏幕分辨率;
基于所述目标屏幕分辨率对各个图层对应的图层图像进行合成,得到待显示图像;
基于所述目标屏幕分辨率显示所述待显示图像。
一种神经网络模型推理框架的处理装置,包括:
获取模块,用于获取待显示的各个图层对应的图层图像分辨率;
目标屏幕分辨率确定模块,用于从候选屏幕分辨率中按分辨率从小至大的顺序选择目标屏幕分辨率,所述各个图层对应的图层图像分辨率均小于或等于所述目标屏幕分辨率;
合成模块,用于基于所述目标屏幕分辨率对各个图层对应的图层图像进行合成,得到待显示图像;
显示模块,用于基于所述目标屏幕分辨率显示所述待显示图像。
一种电子设备,包括存储器以及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
获取待显示的各个图层对应的图层图像分辨率;
从候选屏幕分辨率中按分辨率从小至大的顺序选择目标屏幕分辨率,所述各个图层对应的图层图像分辨率均小于或等于所述目标屏幕分辨率;
基于所述目标屏幕分辨率对各个图层对应的图层图像进行合成,得到待显示图像;
基于所述目标屏幕分辨率显示所述待显示图像。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
获取待显示的各个图层对应的图层图像分辨率;
从候选屏幕分辨率中按分辨率从小至大的顺序选择目标屏幕分辨率,所述各个图层对应的图层图像分辨率均小于或等于所述目标屏幕分辨率;
基于所述目标屏幕分辨率对各个图层对应的图层图像进行合成,得到待显示图像;
基于所述目标屏幕分辨率显示所述待显示图像。
上述神经网络模型推理框架的处理方法、装置、电子设备以及计算机可读存储介质,通过获取待显示的各个图层对应的图层图像分辨率;从候选屏幕分辨率中按分辨率从小至大的顺序选择目标屏幕分辨率,各个图层对应的图层图像分辨率均小于或等于所述目标屏幕分辨率;基于目标屏幕分辨率对各个图层对应的图层图像进行合成,得到待显示图像;基于目标屏幕分辨率显示待显示图像,根据待显示的各个图层大小,设置屏幕目标屏幕分辨率,判断合成输出的待显示图像的分辨率,从候选屏幕分辨率中按分辨率从小至大的顺序选择目标屏幕分辨率以限制合成的待显示图像的分辨率,达到节省图像显示数据传输模块负载,降功耗的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中神经网络模型推理框架的处理方法的应用环境图;
图2为一个实施例中神经网络模型推理框架的处理方法的流程示意图;
图3为一个实施例中的得到转换神经网络模型的流程示意图;
图4为一个实施例中对转换神经网络模型进行编译运行的流程示意图;
图5为一个具体的实施例中得到转换神经网络模型的流程示意图;
图6为一个具体的实施例中神经网络模型转换前和转换后的结构示意图;
图7为一个具体的实施例中对转换神经网络模型进行编译运行的流程示意图;
图8为一个实施例中神经网络模型推理框架的处理装置的结构框图;
图9为一个实施例中电子设备的内部结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中神经网络模型推理框架的处理方法的应用环境图。如图1所示,该应用环境包括终端110和服务器120,神经网络模型推理框架的处理方法可以由终端110、或服务器120独立完成,也可以由终端110、或服务器120配合完成。终端110或服务器120,获取神经网络模型;获取硬件参数列表,获取硬件参数列表中的硬件参数与支持的模型算子间的匹配关系;遍历所述神经网络模型中的各个模型算子且遍历所述硬件参数列表中的各个硬件参数,基于所述匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型;基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对所述转换神经网络模型进行编译运行。其中终端110可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、车载电脑、穿戴式设备等终端设备。其中服务器120可以为一个服务器或服务器集群。
图2为一个实施例中神经网络模型推理框架的处理方法的流程图。图2所示的神经网络模型推理框架的处理方法可应用于上述终端110或服务器120中,包括:
步骤202,获取神经网络模型,获取硬件参数列表,获取硬件参数列表中的硬件参数与支持的模型算子间的匹配关系。
其中,神经网络模型可以是卷积神经网络模型,卷积神经网络模型是包括卷积神经网络的模型,卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络。卷积神经网络模型可以为不同功能,不同网络结构的模型,神经网络层数、神经网络层对应的输出通道数、神经网络层对应的权重精度都可以不同,不同功能的卷积神经网络模型可以由不同的模型算子组成。硬件参数列表包含不同厂商生产的硬件对应的硬件参数。神经网络模型是通用的模型,例如,TensorFlow模型、TensorFlowLite模型、Caffe模型、PyTorch模型等。
具体地,对于不同厂商生产的硬件,对不同模型算子的支持不同,硬件包括中央处理器(CPU,Central Processing Unit)、图形处理器(GPU,Graphics ProcessingUnit)、神经网络训练的处理器(TPU,Tensor Processing Unit)、机器学习处理器(MLU,MachineLearning Unit)、DSP或ARM处理器等。如CPU支持第一算子、第二算子的运行,但不支持第三算子的运行。GPU支持第一算子,第三算子的运行,但不支持第二算子的运行。获取硬件参数列表中的硬件参数与支持的模型算子间的匹配关系,硬件参数对应的硬件若和模型算子匹配,则说明硬件参数对应的硬件支持模型算子的运行。
步骤204,遍历神经网络模型中的各个模型算子且遍历硬件参数列表中的各个硬件参数,基于匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型。
具体的,在模型转换环境中,模型编译过程中,根据部署环境中支持的硬件组成的硬件参数列表,对神经网络模型中的模型算子进行标记。模型转换环境指开发环境,例如PC等,使用模型转换工具,根据开发者提供的模型转换参数,将模型转换成可以在模型部署环境中部署的模型格式。开发者提供的模型转换参数通常包括模型路径、模型输入输出数据格式、模型量化参数、模型转换对应可以运行的硬件加速器,通常有CPU、GPU、NPU等。本实施例中通过将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,完成模型的转换。在进行标记时,采用遍历的方式遍历各个模型算子和硬件参数列表中的各个硬件参数,进行两两判断,当硬件参数对应的硬件支持模型算子的运行时,则将此硬件参数作为这个模型算子的标签,一个模型算子可能被一个或多个不同的硬件参数对应的硬件支持运行,则可能存在一个多个标签。例如,CPU、GPU都支持第一算子的运行,则第一算子对应的标签包括CPU、GPU。当硬件参数包括多个时,可以针对多个硬件参数进行同时标记,提高了离线模型转换的兼容性,减少了模型转换的工作量,一次标记,可以同时支持两个或以上平台的部署,
步骤206,基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对转换神经网络模型进行编译运行。
其中,运行时环境实时的硬件状态包括正常状态和非正常状态。
具体地,模型部署时,根据模型算子对应的标签,依次判断目前运行时环境的系统中的硬件是否正常,采用与模型算子对应的标签中硬件状态正常的硬件进行编译运行,从而可根据运行时环境实时的硬件状态动态为各个模型算子匹配对应的硬件。编译好的模型部署时,假如NPU硬件运行环境异常或者其他原因导致NPU无法使用,而GPU和CPU可以使用,那么会获取系统目前正常状态正常的硬件GPU、CPU对模型进行编译,从而增强了推理框架对模型的兼容性。
本实施例中的神经网络模型推理框架的处理方法,通过获取神经网络模型;
获取硬件参数列表,获取硬件参数列表中的硬件参数与支持的模型算子间的匹配关系;遍历神经网络模型中的各个模型算子且遍历硬件参数列表中的各个硬件参数,基于匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型;基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对转换神经网络模型进行编译运行,在模型转换环境中,模型编译过程中,根据部署环境中支持的硬件,对神经网络模型中的算子进行标记,在部署时,根据神经网络模型中算子标记的结果和运行时环境实时的硬件状态进行动态编译运行,增强了推理框架对神经网络模型的兼容性。
在一个实施例中,步骤204包括:
步骤204A,从神经网络模型中获取当前模型算子。
具体的,不同的神经网络模型中包括不同的模型算子,模型算子是一个函数空间到函数空间上的映射,模型算子可以是一个卷积层。模型算子可以包括加法算子、乘法算子等,不同的模型算子可以具有不同的输入参数与输出参数。
步骤204B,从硬件参数列表中获取当前硬件参数。
具体的,硬件参数列表中可以包括多个不同的硬件参数,可以按顺序获取当前硬件参数,不同的硬件参数对模型算子的支持能力不同。硬件参数列表中的硬件参数可以包括CPU、GPU、NPU、TPU、DSP等。硬件参数列表中可以包括多个不同的部署平台对应的硬件参数,部署平台A为CPU、GPU;部署平台B为GPU、NPU,则参数列表中包括CPU、GPU、NPU,这样一次标记,可以同时支持多个平台的部署,提高了离线模型转换的兼容性,减少了模型转换的工作量。
步骤204C,若当前硬件参数支持当前模型算子的运行,则将当前硬件参数标记为当前模型算子对应的标签。
具体的,如第一硬件参数对应的硬件支持第一算子的运行,则将第一硬件参数作为第一算子的标签,一个模型算子如果被多个不同的硬件参数对应的硬件支持运行,则会存在多个不同的标签。如第一硬件参数、第二硬件参数、第三硬件参数都对应的硬件都支持第一算子的运行,则将第一硬件参数、第二硬件参数、第三硬件参数标记为第一算子对应的标签。其中,标记的形式不作限定,可以自定义数据结构进行标记。
步骤204D,从硬件参数列表中获取下一个硬件参数作为当前硬件参数,返回步骤204C,直至遍历完硬件参数列表中的硬件参数。
具体地,上一个硬件参数判断完毕,则依次从硬件参数列表中获取下一个硬件参数作为当前硬件参数,返回步骤204C,判断下一个硬件参数是否支持当前模型算子的运行,如果支持,则将下一个硬件参数标记为当前模型算子对应的标签,直至硬件参数列表中所有的硬件参数都判断完毕。
步骤204E,从神经网络模型中获取下一个模型算子作为当前模型算子,返回步骤204B,直至遍历完神经网络模型中的模型算子。
具体地,在模型离线转换过程中,根据开发者输入的硬件参数列表中的各个硬件参数,离线转换工具会根据配置的硬件参数顺序依次判断各个硬件参数是否支持模型算子的运行,如果支持,则将该硬件参数作为一个标签标记在该算子上,直至遍历完神经网络模型中的模型算子。
本实施例中,在模型转换环境中,模型编译过程中,根据部署环境中支持的硬件参数,通过遍历依次对模型中的模型算子进行标记,使得标记的过程有序进行,针对多个硬件参数进行同时标记,提高了离线模型转换的兼容性,减少了模型转换的工作量。
在一个实施例中,步骤206包括:。
步骤206A,从转换神经网络模型中获取当前模型算子。
步骤206B,获取当前模型算子对应的当前标签,基于运行时环境实时的硬件状态获取正常运行状态的硬件,基于当前标签从正常运行状态的硬件中选择目标运行硬件,通过目标运行硬件对当前模型算子进行编译。
具体地,如当前模型算子为第一算子,第一算子对应的当前标签为NPU、CPU,基于运行时环境实时的硬件状态获取正常运行状态的硬件包括GPU、CPU,则将第一算子对应的当前标签与正常运行状态的硬件进行比较,如果存在相同的,则得到目标运行硬件,这里得到CPU作为第一算子的目标运行硬件。编译好的模型部署时,假如NPU硬件运行环境异常或者其他原因导致NPU无法使用,而GPU和CPU可以使用,那么会获取系统目前支持的硬件参数GPU、CPU对模型算子进行编译,从而运行时根据硬件实时状态进行编译运行,对输入的模型进行动态调整选择硬件运行,这样可以充分利用转换好的模型,增强了推理框架对模型的兼容性。
可以理解,如果当前标签与正常运行状态的硬件存在二个或二个以上一致的,则可以将这二个或二个以上一致的硬件作为候选运行硬件,再根据运行效率或其它自定义的策略从候选运行硬件中选择目标运行硬件,通过目标运行硬件对当前模型算子进行编译。
步骤206C,获取转换神经网络模型中的下一个模型算子作为当前模型算子,返回步骤206B,直至转换神经网络模型中的各个模型算子编译完成。
具体地,模型部署,就是将上述转换输出的转换神经网络模型,根据开发者的需求,部署到对应的推理环境的过程。模型部署包含两个重要条件:开发者开发的模型运行软件系统和部署环境中的模型运行的硬件,第一个条件,模型运行软件系统就是本专利中描述的神经网络推理框架。
依次获取转换神经网络模型中的各个模型算子,选择与标签匹配且正常运行状态的硬件,直至转换神经网络模型中的各个模型算子编译完成。
本实施例中,针对模型转换生成的标记模型,动态获取系统支持的硬件参数列表,针对模型算子标记的状态,动态调整模型编译和运行的硬件,增强了推理框架对模型的兼容性,根据离线处理时标记的硬件参数CPU、GPU、NPU和目前部署环境支持的硬件进行调整,例如离线处理时A算子可以在CPU、GPU、NPU上运行,而部署时只有NPU,那么就可以动态调整,在NPU上运行。
在一个实施例中,步骤206包括:获取模型输入数据,将模型输入数据输入编译完成的神经网络模型;得到编译完成的神经网络模型根据所述模型输入数据输出的模型预测结果。
具体的,可以从将各种不同业务功能的卷积神经网络,卷积神经网络的功能包括但不限于人脸识别、语音识别、影像处理等。根据神经网络模型的业务功能不同,对应的模型输入数据和模型预测结果也不同,如对于人脸识别神经网络模型,对应的模型输入数据为图像,模型预测结果为人脸在图像中的位置区域,对于语音识别神经网络模型,对应的模型输入数据为待识别的语音,模型预测结果为识别语音得到的文字,对于影像处理神经网络模型,对应的模型输入数据为图像,模型预测结果可以为经过美颜处理得到图像,或经过其他图像处理得到的图像。
本实施例中,根据神经网络模型的类型,输入对应的模型输入数据,从而可从编译完成的神经网络模型的输出得到对应的模型预测结果。
在一个实施例中,步骤206包括:若当前模型算子对应的当前标签的数量大于2,从正常运行状态的硬件中选择与当前标签一致的硬件,得到候选硬件;根据当前模型算子在各个候选硬件的运算效率;选择效率最高的硬件作为当前模型算子对应的目标运行硬件。
具体的,若当前模型算子对应的当前标签的数量大于2,则如果正常运行状态的硬件中与当前标签一致的硬件可能存在2个或2个以上,将这些与标签匹配且正常运行状态的硬件作为候选硬件,并根据当前模型算子在各个候选硬件的运算效率,选择效率最高的硬件作为当前模型算子对应的目标运行硬件,其中运算效率的计算规则可自定义。
本实施例中,通过当前模型算子在各个候选硬件的运算效率,选择效率最高的硬件作为当前模型算子对应的目标运行硬件,提高了模型在环境部署后的运行效率。
在一个具体的实施例中,对本申请实施例提供的神经网络模型推理框架的处理方法进行说明,结合图5所示,包括以下步骤:
1.获取神经网络模型,其中获取神经网络模型包括A、B、C、D、E共5个模型算子。
2.获取硬件参数列表,获取硬件参数列表中的硬件参数与支持的模型算子间的匹配关系,开发者提供的硬件参数列表包括的硬件参数如下:NPU,GPU,CPU;三个硬件对模型算子的支持能力如下:CPU支持A、B,NPU支持A、B、C、D、E,GPU支持C、D、E。
3、遍历所述神经网络模型中的各个模型算子且遍历所述硬件参数列表中的各个硬件参数,基于所述匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型,在模型离线转换过程中,根据开发者输入的硬件参数列表,离线转换工具会根据用户提供的硬件参数顺序依次判断各个硬件是否支持模型算子的运行,如果支持,则将该硬件对应的硬件参数作为一个标签标记该模型算子上,原始模型和转换后的模型如图6所示。
4.结合图7所示,基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对转换神经网络模型进行编译运行,假如NPU硬件运行环境异常或者其他原因导致NPU无法使用,而GPU和CPU可以使用,则会获取系统目前支持的硬件参数GPU、CPU对模型进行编译,经过该编译后的模型如图所示,这样即使存在硬件运行环境异常,该模型还可以动态选择正常状态的硬件运行,在该部署环境中进行部署推理。
5.获取模型输入数据,将模型输入数据输入编译完成的神经网络模型;得到编译完成的神经网络模型根据所述模型输入数据输出的模型预测结果。
本实施例中,在模型转换阶段,针对多硬件支持能力进行模型算子硬件支持标记,减小模型转换工作量,增加了模型转换后的多平台兼容性,在模型部署阶段,针对模型转换生成的标记模型,动态获取系统支持的硬件参数列表,针对模型算子标记的状态,动态调整模型编译和运行的硬件参数,增强了推理框架对模型的兼容性。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图8为一个实施例的神经网络模型推理框架的处理装置400的结构框图。如图8所示,一种神经网络模型推理框架的处理装置400,包括:获取模块402、转换模块404、编译运行模块406。其中:
获取模块402,用于获取待显示的各个图层对应的图层图像分辨率。
转换模块404,用于遍历所述神经网络模型中的各个模型算子且遍历所述硬件参数列表中的各个硬件参数,基于所述匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型。
编译运行模块406,用于基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对所述转换神经网络模型进行编译运行。
本实施中的神经网络模型推理框架的处理装置400,通过获取神经网络模型;
获取硬件参数列表,获取硬件参数列表中的硬件参数与支持的模型算子间的匹配关系;遍历神经网络模型中的各个模型算子且遍历硬件参数列表中的各个硬件参数,基于匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型;基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对转换神经网络模型进行编译运行,在模型转换环境中,模型编译过程中,根据部署环境中支持的硬件,对神经网络模型中的算子进行标记,在部署时,根据神经网络模型中算子标记的结果和运行时环境实时的硬件状态进行动态编译运行,增强了推理框架对神经网络模型的兼容性。
在一个实施例中,转换模块404还用于从所述神经网络模型中获取当前模型算子;从所述硬件参数列表中获取当前硬件参数;若所述当前硬件参数支持所述当前模型算子的运行,则将所述当前硬件参数标记为所述当前模型算子对应的标签;从所述硬件参数列表中获取下一个硬件参数作为所述当前硬件参数,返回所述若所述当前硬件参数支持所述当前模型算子的运行,则将所述当前硬件参数标记为所述当前模型算子对应的标签的步骤,直至遍历完硬件参数列表中的硬件参数;从所述神经网络模型中获取下一个模型算子作为当前模型算子,返回所述从所述硬件参数列表中获取当前硬件参数的步骤,直至遍历完神经网络模型中的模型算子。
本实施中的神经网络模型推理框架的处理装置400,在模型转换环境中,模型编译过程中,根据部署环境中支持的硬件参数,通过遍历依次对模型中的模型算子进行标记,使得标记的过程有序进行,针对多个硬件参数进行同时标记,提高了离线模型转换的兼容性,减少了模型转换的工作量。
在一个实施例中,编译运行模块406还用于从转换神经网络模型中获取当前模型算子;获取当前模型算子对应的当前标签;基于运行时环境实时的硬件状态获取正常运行状态的硬件;基于当前标签从所述正常运行状态的硬件中选择目标运行硬件;通过目标运行硬件对所述当前模型算子进行编译;获取转换神经网络模型中的下一个模型算子作为当前模型算子,返回所述获取当前模型算子对应的当前标签的步骤,直至转换神经网络模型中的各个模型算子编译完成。
本实施中的神经网络模型推理框架的处理装置400,针对模型转换生成的标记模型,动态获取系统支持的硬件参数列表,针对模型算子标记的状态,动态调整模型编译和运行的硬件,增强了推理框架对模型的兼容性,根据离线处理时标记的硬件参数CPU、GPU、NPU和目前部署环境支持的硬件进行调整,例如离线处理时A算子可以在CPU、GPU、NPU上运行,而部署时只有NPU,那么就可以动态调整,在NPU上运行。
在一个实施例中,编译运行模块406还用于获取模型输入数据,将所述模型输入数据输入编译完成的神经网络模型;得到编译完成的神经网络模型根据所述模型输入数据输出的模型预测结果。
本实施例中,根据神经网络模型的类型,输入对应的模型输入数据,从而可从编译完成的神经网络模型的输出得到对应的模型预测结果。
在一个实施例中,编译运行模块406还用于若当前模型算子对应的当前标签的数量大于2,从正常运行状态的硬件中选择与当前标签一致的硬件,得到候选硬件;根据当前模型算子在各个候选硬件的运算效率;选择效率最高的硬件作为当前模型算子对应的目标运行硬件。
本实施中的神经网络模型推理框架的处理装置400,通过当前模型算子在各个候选硬件的运算效率,选择效率最高的硬件作为当前模型算子对应的目标运行硬件,提高了模型在环境部署后的运行效率。
关于神经网络模型推理框架的处理装置的具体限定可以参见上文中对于神经网络模型推理框架的处理方法的限定,在此不再赘述。上述神经网络模型推理框架的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图9为一个实施例中电子设备的内部结构示意图。如图9所示,该电子设备包括通过系统总线连接的处理器、存储器。其中,该处理器用于提供计算和控制能力,支撑整个电子设备的运行。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以上各个实施例所提供的神经网络模型推理框架的处理方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。该电子设备可以是手机、服务器等。
本申请实施例中提供的神经网络模型推理框架的处理装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述的神经网络模型推理框架的处理方法。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行本申请实施例中所描述的神经网络模型推理框架的处理方法。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例中所描述的神经网络模型推理框架的处理方法。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种神经网络模型推理框架的处理方法,其特征在于,包括:
获取神经网络模型;
获取硬件参数列表,获取硬件参数列表中的硬件参数与支持的模型算子间的匹配关系;
遍历所述神经网络模型中的各个模型算子且遍历所述硬件参数列表中的各个硬件参数,基于所述匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型;
基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对所述转换神经网络模型进行编译运行。
2.根据权利要求1所述的方法,其特征在于,所述遍历所述神经网络模型中的各个模型算子且遍历所述硬件参数列表中的各个硬件参数,基于所述匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型包括:
从所述神经网络模型中获取当前模型算子;
从所述硬件参数列表中获取当前硬件参数;
若所述当前硬件参数支持所述当前模型算子的运行,则将所述当前硬件参数标记为所述当前模型算子对应的标签;
从所述硬件参数列表中获取下一个硬件参数作为所述当前硬件参数,返回所述若所述当前硬件参数支持所述当前模型算子的运行,则将所述当前硬件参数标记为所述当前模型算子对应的标签的步骤,直至遍历完硬件参数列表中的硬件参数;
从所述神经网络模型中获取下一个模型算子作为当前模型算子,返回所述从所述硬件参数列表中获取当前硬件参数的步骤,直至遍历完神经网络模型中的模型算子。
3.根据权利要求1所述的方法,其特征在于,所述基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对所述转换神经网络模型进行编译运行包括:
从转换神经网络模型中获取当前模型算子;
获取当前模型算子对应的当前标签;
基于运行时环境实时的硬件状态获取正常运行状态的硬件;
基于当前标签从所述正常运行状态的硬件中选择目标运行硬件;
通过目标运行硬件对所述当前模型算子进行编译;
获取转换神经网络模型中的下一个模型算子作为当前模型算子,返回所述获取当前模型算子对应的当前标签的步骤,直至转换神经网络模型中的各个模型算子编译完成。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对所述转换神经网络模型进行编译运行包括:
获取模型输入数据,将所述模型输入数据输入编译完成的神经网络模型;
得到编译完成的神经网络模型根据所述模型输入数据输出的模型预测结果。
5.根据权利要求3所述的方法,其特征在于,所述基于当前标签从所述正常运行状态的硬件中选择目标运行硬件包括:
若当前模型算子对应的当前标签的数量大于2,从正常运行状态的硬件中选择与当前标签一致的硬件,得到候选硬件;
根据当前模型算子在各个候选硬件的运算效率;
选择效率最高的硬件作为当前模型算子对应的目标运行硬件。
6.一种神经网络模型推理框架的处理装置,其特征在于,包括:
获取模块,用于获取神经网络模型,获取硬件参数列表,获取硬件参数列表中的硬件参数与支持的模型算子间的匹配关系;
转换模块,用于遍历所述神经网络模型中的各个模型算子且遍历所述硬件参数列表中的各个硬件参数,基于所述匹配关系,将支持神经网络模型中的模型算子运行的硬件参数标记为模型算子对应的标签,直至遍历完全,得到转换神经网络模型;
编译运行模块,用于基于模型算子标记的对应标签和运行时环境实时的硬件状态,为转换神经网络模型中的各个模型算子选择匹配的硬件,对所述转换神经网络模型进行编译运行。
7.根据权利要求6所述的装置,其特征在于,所述转换模块还用于从所述神经网络模型中获取当前模型算子;从所述硬件参数列表中获取当前硬件参数;
若所述当前硬件参数支持所述当前模型算子的运行,则将所述当前硬件参数标记为所述当前模型算子对应的标签;从所述硬件参数列表中获取下一个硬件参数作为所述当前硬件参数,返回所述若所述当前硬件参数支持所述当前模型算子的运行,则将所述当前硬件参数标记为所述当前模型算子对应的标签的步骤,直至遍历完硬件参数列表中的硬件参数;从所述神经网络模型中获取下一个模型算子作为当前模型算子,返回所述从所述硬件参数列表中获取当前硬件参数的步骤,直至遍历完神经网络模型中的模型算子。
8.根据权利要求6所述的装置,其特征在于,所述编译运行模块还用于从转换神经网络模型中获取当前模型算子;获取当前模型算子对应的当前标签;基于运行时环境实时的硬件状态获取正常运行状态的硬件;基于当前标签从所述正常运行状态的硬件中选择目标运行硬件;通过目标运行硬件对所述当前模型算子进行编译;获取转换神经网络模型中的下一个模型算子作为当前模型算子,返回所述获取当前模型算子对应的当前标签的步骤,直至转换神经网络模型中的各个模型算子编译完成。
9.根据权利要求8所述的装置,其特征在于,所述编译运行模块还用于获取模型输入数据,将所述模型输入数据输入编译完成的神经网络模型;得到编译完成的神经网络模型根据所述模型输入数据输出的模型预测结果。
10.根据权利要求8所述的装置,其特征在于,所述编译运行模块还用于若当前模型算子对应的当前标签的数量大于2,从正常运行状态的硬件中选择与当前标签一致的硬件,得到候选硬件;根据当前模型算子在各个候选硬件的运算效率;选择效率最高的硬件作为当前模型算子对应的目标运行硬件。
11.一种电子设备,包括存储器以及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至5中任一项所述的神经网络模型推理框架的处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的神经网络模型推理框架的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210480418.1A CN117078569A (zh) | 2022-05-05 | 2022-05-05 | 神经网络模型推理框架的处理方法和装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210480418.1A CN117078569A (zh) | 2022-05-05 | 2022-05-05 | 神经网络模型推理框架的处理方法和装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117078569A true CN117078569A (zh) | 2023-11-17 |
Family
ID=88706614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210480418.1A Pending CN117078569A (zh) | 2022-05-05 | 2022-05-05 | 神经网络模型推理框架的处理方法和装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117078569A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873910A (zh) * | 2024-03-13 | 2024-04-12 | 磐基技术有限公司 | 用于智能算法的快速原型系统、方法、设备、存储介质、产品 |
-
2022
- 2022-05-05 CN CN202210480418.1A patent/CN117078569A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873910A (zh) * | 2024-03-13 | 2024-04-12 | 磐基技术有限公司 | 用于智能算法的快速原型系统、方法、设备、存储介质、产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111950638B (zh) | 基于模型蒸馏的图像分类方法、装置和电子设备 | |
CN110991649A (zh) | 深度学习模型搭建方法、装置、设备和存储介质 | |
CN108153520A (zh) | 软件开发方法及装置 | |
CN109285105A (zh) | 水印检测方法、装置、计算机设备和存储介质 | |
CN111192278B (zh) | 语义分割方法、装置、计算机设备和计算机可读存储介质 | |
CN113435594B (zh) | 安防检测模型训练方法、装置、设备及存储介质 | |
CN110750298B (zh) | 一种ai模型编译方法、设备及存储介质 | |
CN111178512A (zh) | 器件运行神经网络的测试方法及装置 | |
CN112099848B (zh) | 一种业务处理方法、装置及设备 | |
US20230040256A1 (en) | Image coloring method and apparatus based on artificial intelligence, electronic device, and computer readable storage medium | |
CN113379070A (zh) | 一种深度学习框架转换方法、系统、存储介质及设备 | |
CN112099882B (zh) | 一种业务处理方法、装置及设备 | |
CN115423101A (zh) | 基于编译器的张量数据计算推理方法、装置及存储介质 | |
CN113641337A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN117078569A (zh) | 神经网络模型推理框架的处理方法和装置、电子设备 | |
CN112712121A (zh) | 一种基于深度神经网络的图像识别模型训练方法、装置及存储介质 | |
CN114611041A (zh) | 一种前端页面构建方法、装置、计算机设备及介质 | |
CN111639523B (zh) | 目标检测方法、装置、计算机设备和存储介质 | |
CN115906988A (zh) | 神经网络推理架构的创建方法、神经网络推理方法及装置 | |
CN110705714B (zh) | 深度学习模型检测方法、深度学习平台以及计算机设备 | |
CN112527286A (zh) | 业务代码的生成方法、装置、计算机设备及存储介质 | |
CN112015378A (zh) | 骨架屏页面生成方法、装置、计算机设备和存储介质 | |
CN112132780A (zh) | 基于深度神经网络的钢筋数量检测方法及系统 | |
CN112230911B (zh) | 模型部署方法、装置、计算机设备和存储介质 | |
CN112990131B (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 |