CN114897130A - 一种深度学习模型的转换和推断方法及系统 - Google Patents
一种深度学习模型的转换和推断方法及系统 Download PDFInfo
- Publication number
- CN114897130A CN114897130A CN202210350692.7A CN202210350692A CN114897130A CN 114897130 A CN114897130 A CN 114897130A CN 202210350692 A CN202210350692 A CN 202210350692A CN 114897130 A CN114897130 A CN 114897130A
- Authority
- CN
- China
- Prior art keywords
- operator
- network model
- original
- target network
- model
- 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
Images
Classifications
-
- 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/044—Recurrent networks, e.g. Hopfield 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/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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种深度学习模型的转换和推断方法及系统,其中的方法包括:获取原始网络模型中包括的原始算子;定义目标网络模型,根据原始算子的类型和执行顺序,建立原始算子与目标网络模型的算子库中相应算子的算子映射关系;根据算子映射关系,将原始网络模型转换为目标网络模型;基于预实现推断框架,通过模型分析器解析目标网络模型,调用目标网络模型提供的算子库接口,构建与实现网络模型;获取目标输入,并将其输入至预实现网络模型,获取预实现网络模型的推断输出。该方法解决了现有技术中网络模型只能一一对应转换而导致的应用开发和部署不便的缺陷,实现了模型转换格式的统一,方便了应用的集成和部署。
Description
技术领域
本发明涉及机器学习技术领域,尤其涉及一种深度学习模型的转换和推断方法及系统。
背景技术
深度学习模型是机器学习的一种,深度学习能够获得样本数据的内置规律和表示层次,在人脸检测、人脸比对、活体检测以及OCR(Optical Character Recognition,光学字符识别)等多个领域有着重要的应用。随着深度学习在各行各业的广泛应用,其运行环境也越来越复杂,包括服务器、PC端、嵌入式设备以及加速卡等,且底层芯片架构也各不相同,例如X86和ARM64。
深度学习技术在解决实际应用场景中的问题时,如人脸检测定位、人脸比对、活体检测、OCR识别、语音识别、指纹识别以及虹膜识别等,需要经过训练和推理部署两个步骤。一种通用的流程是在某个深度学习框架上训练模型达到可用精度,然后使用该深度学习框架进行推理;比如使用TensorFlow、PyTorch等深度学习框架训练模型,然后接收新的数据进行推理。
目前,广泛采用的一种推理加速方法是使用与硬件匹配的高效的推理加速框架,通过推理加速框架提供的模型转换工具,将原始模型转换成自己的模型格式。但是在模型转换过程中,有些模型往往很难转换通过,就算能完成转换,这种多框架多模型格式的集成方式导致了应用开发和部署的极大不便,具体地,需要对每个框架进行模型转换,同时需熟悉各个框架的接口,应用发布的时候需携带多种格式的模型版本。
因此,如何解决现有技术中网络模型只能一一对应转换而导致的应用开发和部署不便的技术问题,是机器学习技术领域亟待解决的重要课题。
发明内容
本发明提供一种深度学习模型的转换和推断方法及系统,用以解决现有技术中网络模型只能一一对应转换而导致的应用开发和部署不便的缺陷,实现了模型转换格式的统一,方便了应用的集成和部署。
一方面,本发明提供一种深度学习模型的转换和推断方法,包括:获取原始网络模型中包括的原始算子;定义目标网络模型,根据所述原始算子的类型和执行顺序,建立所述原始算子与所述目标网络模型的算子库中相应算子的算子映射关系;根据所述算子映射关系,将所述原始网络模型转换为所述目标网络模型;基于预实现推断框架,通过模型分析器解析所述目标网络模型,调用所述目标网络模型提供的算子库接口,构建预实现网络模型,其中,所述预实现推断框架为与所述目标网络模型适配的推断框架;获取目标输入,并将其输入至所述预实现网络模型中,获取所述预实现网络模型的推断输出。
进一步地,所述定义目标网络模型,包括:设置所述目标网络模型的模型格式,所述模型格式包括所述目标网络模型的网络层定义和权重布局。
进一步地,所述根据所述原始算子的类型和执行顺序,建立所述原始算子与目标网络模型中的算子库中相应算子的算子映射关系,包括:设置预设融合模式,所述预设融合模式包括所述目标网络模型中的预设融合算子;根据所述预设融合模式,对所述原始算子进行融合,得到融合算子;建立所述融合算子与所述预设融合算子的融合算子映射关系;相应地,所述根据所述算子映射关系,将所述原始网络模型转换为所述目标网络模型,包括:根据所述融合算子映射关系,将所述原始网络模型转换为所述目标网络模型。
进一步地,所述根据所述原始算子的类型和执行顺序,建立所述原始算子与目标网络模型中的算子库中相应算子的算子映射关系,包括:若根据所述原始算子的类型和执行顺序,在所述目标网络模型的算子库中未能查询到与其有直接对应关系的目标算子,则通过预设转换方式建立所述算子映射关系。
进一步地,所述通过预设转换方式建立所述算子映射关系,包括:若所述原始算子能被拆分,则将所述原始算子拆分为多个子原始算子;根据所述子原始算子的类型和执行顺序,建立所述子原始算子与所述目标网络模型中目标算子的算子映射关系。
进一步地,所述通过预设转换方式建立所述算子映射关系,还包括:若所述原始算子不能被拆分,则在所述目标网络模型中的算子库新增与所述原始算子相对应的目标算子,建立所述原始算子与所述目标算子的算子映射关系。
第二方面,本发明还提供一种深度学习模型的转换和推断系统,包括:原始算子获取模块,用于获取原始网络模型中包括的原始算子;映射关系建立模块,用于获取目标网络模型,根据所述原始算子的类型和执行顺序,建立所述原始算子与所述目标网络模型的算子库中相应算子的算子映射关系;模型转换模块,用于根据所述算子映射关系,将所述原始网络模型转换为所述目标网络模型;模型构建模块,用于基于预实现推断框架,通过模型分析器分析所述目标网络模型,调用所述目标网络模型提供的算子库接口,构建预实现网络模型;其中,所述预实现推断框架为与所述目标网络模型适配的推断框架;模型推断模块,用于获取目标输入,并将其输入至所述预实现网络模型中,获取所述预实现网络模型的推断输出。
第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述深度学习模型的转换和推断方法的步骤。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述深度学习模型的转换和推断方法的步骤。
第五方面,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述深度学习模型的转换和推断方法的步骤。
本发明提供的深度学习模型的转换和推断方法,通过获取原始网络模型中包括的原始算子,并根据原始算子的类型和执行顺序,建立原始算子与目标网络模型的算子库中相应算子的算子映射关系,根据该算子映射关系,可实现原始网络模型到目标网络模型的转换,当需要实现某一推断框架时,通过模型分析器解析目标网络模型,调用目标网络模型提供的算子库接口,构建预实现网络模型,获取目标输入。并将其输入至预实现网络模型,即可获取预实现网络模型的推断输出。该方法解决了现有技术中网络模型只能一一对应转换而导致的应用开发和部署不便的缺陷,实现了模型转换格式的统一,方便了应用的集成和部署。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的深度学习模型的转换和推断方法的流程示意图;
图2为本发明提供的深度学习模型的转换和推断方法的整体流程示意图;
图3为本发明提供的深度学习模型的转换和推断方法的推断实现示例图;
图4为本发明提供的深度学习模型的转换和推断系统的结构示意图;
图5为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明所提供的深度学习模型的转换和推断方法的流程示意图。如图1所示,该方法包括:
S101,获取原始网络模型中包括的原始算子。
在本步骤中,原始网络模型包括ONNX(Open Neural Network Exchange)模型和TensorFlow模型。其中,ONNX是一种开放神经网络交换格式,作为框架共用的一种模型交换格式,使用protobuf二进制格式来序列化模型,以提供更好的传输性能。例如,欲将模型A转换为模型B,可以先将模型A转换为ONNX模型,然后将ONNX模型转换为模型B,在这一过程中,ONNX模型充当模型转换过程中的翻译中介。
TensorFlow是一个基于数据流编程的符号数学系统,广泛用于各类机器学习算法的编程实现。TensorFlow模型中包括递归神经网络模型、前馈型神经网络模型、线性模型以及深和宽模型。
在深度学习中,深度学习算法由许多计算单元构成,这些计算单元即为算子,换句话说,算子对应于深度学习模型中每一层的计算逻辑。例如,卷积网络层中的卷积算法,以及全连接层中的权值求和过程,都可以认为是一个算子。
可以理解的是,获取原始网络模型,对原始网络模型进行解析,即可获取原始网络模型中包括的所有算子,即原始算子。原始算子是多种算子的集合,例如卷积算子、池化算子、全连接算子、激活算子以及归一化算子。
需要注意的是,原始网络模型可以是ONNX模型,可以是TensorFlow模型,还可以是ONNX模型和TensorFlow模型以外的其他深度学习模型。当原始网络模型为ONNX模型和TensorFlow模型以外的其他深度学习模型时,先将其他深度学习模型转换为ONNX模型,对ONNX模型进行解析,获取其中的所有算子。
S102,定义目标网络模型,根据原始算子的类型和执行顺序,建立原始算子与目标网络模型的算子库中相应算子的算子映射关系。
可以理解的是,在上一步骤获取原始网络模型中的原始算子的基础上,根据原始算子的类型和执行顺序,建立原始算子与目标网络模型的算子库中相应算子的算子映射关系。
具体地,原始算子是多种算子的集合,包含多种类型的算子,例如激活算子,包括Relu、leakyRelu、Relu6、Tan、sigmoid以及PRelu;两个张量的计算,包括Add、Sub、Mul以及RealDiv;归一化算子,包括BatchNorm和LRN。原始算子的类型是指该原始算子在深度学习模型中的具体算法和作用;执行顺序是指在该原始算子的实现以何为输入,以何为输出。
目标网络模型是原始模型转换后的模型,该目标网络模型提供了一个通用的推断框架,可以运行所有适配的预实现推断框架,其支持X86、ARM CPU和NVIDIA GPU设备,能在ANDROID、IOS和国产化系统和浏览器上运行,并支持早期的32位Windows XP系统。
目标网络模型包括算子库,该算子库中扩展了适配的预实现推断框架需要的所有算子。预实现推断框架是指最终想要通过目标网络模型实现的推断框架,通过调用目标网络模型提供的算子库接口搭建而成,是一系列计算单元实现的过程。
在一个具体的实施例中,算子库中包括的预实现推断框架的所有算子包括:conv、pad、transpose、slice、fullConnect、batchNormalize、maxPool、avePool、relu、softMax、concat、add、sub、sigmoid、reshape、multiply、exp、divide、reduce、l2normalize、clip、lstm、hardSigmoid、max、instanceNormalization、resize、abs、leakyRelu、tanh、deConvolve、shapeOf。
还需要说明的是,原始算子与目标网络模型的算子库中相应算子的算子映射关系,可以为一一对应的关系,也可以一对多、多对一或多对多的映射关系。
S103,根据算子映射关系,将原始网络模型转换为目标网络模型。
可以理解的是,在上一步骤建立原始算子与目标网络模型的算子库中相应算子的算子映射关系的基础上,根据算子映射关系,即可将原始网络模型转换为目标网络模型。
对于深度学习模型而言,其包含了多种算子,根据算子的输入输出,便可以构建一个完整的网络模型。而模型的转换过程就是根据算子映射关系,将原始网络模型的原始算子转换为目标网络模型中相应的算子,并将算子参数和权重数据进行转换,以统一不同模型中对相同算子的不同定义,以及权重布局的差异。
S104,基于预实现推断框架,通过模型分析器解析目标网络模型,调用目标网络模型提供的算子库接口,构建预实现网络模型;其中,预实现推断框架为与目标网络模型适配的推断框架。
可以理解的是,在上一步骤将原始网络模型转换为目标网络模型的基础上,已知晓需要通过目标网络模型实现的预实现推断框架,根据该预实现推断框架,可以得到其实现推断所需要的各种算子。此时,通过模型分析器对目标网络模型进行解析,获取预实现推断框架所需要的算子的类型和执行顺序,整合于相应的算子库接口,具体地,直接调用目标网络模型提供的算子库接口,即可得到与预实现推断框架相对应的预实现网络模型。
也就是说,需要进行模型转换时,只要预实现推断框架是与目标网络模型适配的,便可直接调用相应的算子库接口,即可构建相应的预实现网络模型。当想要实现的推断框架与目标网络模型并不适配时,可以通过扩展更新目标网络模型的算子库,使得算子库中涵盖该推断框架的算子,从而实现目标网络模型与该推断框架的适配。
S105,获取目标输入,并将其输入至预实现网络模型中,获取预实现网络模型的推断输出。
可以理解的是,在得到构建的预实现网络模型后,根据实际的输入,可以得到相应的推断输出。具体地,获取实际的输入,即目标输入,将该目标输入输入到构建的预实现网络模型中,即可得到预实现网路模型的推断输出。
在本实施例中,通过获取原始网络模型中包括的原始算子,并根据原始算子的类型和执行顺序,建立原始算子与目标网络模型的算子库中相应算子的算子映射关系,根据该算子映射关系,可实现原始网络模型到目标网络模型的转换,当需要实现某一推断框架时,通过模型分析器解析目标网络模型,调用目标网络模型提供的算子库接口,构建预实现网络模型,获取目标输入,并将其输入至预实现网络模型中,即可获取预实现网络模型的推断输出。该方法解决了现有技术中网络模型只能一一对应转换而导致的应用开发和部署不便的缺陷,实现了模型转换格式的统一,方便了应用的集成和部署。
在上述实施例的基础上,进一步地,定义目标网络模型包括:设置目标网络模型的模型格式,模型格式包括目标网络模型的网络层定义和权重布局。
可以理解的是,目标网络模型是自定义的,具体地,包括设置目标网络模型的模型格式,该模型格式包括目标网络模型的网络层定义和权重布局。
目标网络模型的网络层定义,是指设置构成目标网络模型的网络层,比如卷积网络层、全连接层、池化网络层以及归一化网络层等。在深度学习模型中,除了模型输入的变量以外,还涉及目标网络模型的权重布局,包括一些学习参数或用于定义模型结构或优化策略的超参数,例如每一个网络层输入输出的维度和类型、正则化的系数以及梯度下降法的步长。
在本实施例中,通过设置目标网络模型的模型格式,包括目标网络模型的网络层定义和权重布局,以便于原始网络模型到目标网络模型的转换,以及后续推断输出的获取。
在上述实施例的基础上,进一步地,根据原始算子的类型和执行顺序,建立原始算子与目标网络模型的算子库中相应算子的算子映射关系,包括:设置预设融合模式,预设融合模式包括目标网络模型中的预设融合算子;根据预设融合模式,对原始算子进行融合,得到融合算子;建立融合算子与预设融合算子的融合算子映射关系;相应地,根据算子映射关系,将原始网络模型转换为目标网络模型,包括:根据融合算子映射关系,将原始网络模型转换为目标网络模型。
可以理解的是,根据原始算子的类型和执行顺序,建立原始算子与目标网络模型的算子库中相应算子的算子映射关系。具体地,在目标网络模型的算子库中,设置有预设融合模式,该预设融合模式用于判断哪些算子可以融合在一起,哪些算子不能融合在一起。也就是说,目标网络模型的算子库中包括单个的不可拆分的算子,也包括多个算子融合在一起形成的预设融合算子,预设融合算子是根据预设融合模式得到的算子的总称。
根据预设融合模式,对原始网络模型的原始算子进行融合,得到融合算子。建立融合算子和预设融合算子的融合算子映射关系,并根据融合算子映射关系,将原始网络模型转换为目标网络模型。其中,需要注意的是,融合算子和预设融合算子须内部构成算子的类型和执行顺序完全一致,才能建立二者之间的融合算子映射关系。
当预设融合算子在模型中多次被使用到时,不用再通过单个算子的依次计算,可以直接调用融合算子的计算结果,以达到简化网络的目的。
在本实施例中,通过设置预设融合模式,并根据该预设融合模式,对原始算子进行融合,得到融合算子,在此基础上,建立融合算子与预设融合算子之间的融合算子映射关系,并根据融合算子映射关系,将原始网络模型转换为目标网络模型,在一定程度上减少了计算量,并加快了计算速度,从而提升目标网络模型的运行效率。
在上述实施例的基础上,进一步地,根据原始算子的类型和执行顺序,建立原始算子与目标网络模型中的算子库中各算子的算子映射关系,包括:若根据原始算子的类型和执行顺序,在目标网络模型的算子库中未能查询到与其有直接对应关系的目标算子,则通过预设转换方式建立算子映射关系。
可以理解的是,根据原始算子的类型和执行顺序,建立原始算子与目标网络模型的算子库中各算子的算子映射关系。当在目标网络模型的算子库中未能查询到与原始算子的类型和执行顺序一致的目标算子时,则可以通过预设转换方式建立算子映射关系。
具体地,若原始算子能被拆分,则将原始算子拆分为多个子原始算子;根据子原始算子的类型和执行顺序,建立子原始算子与目标网络模型中目标算子的算子映射关系。
也即是说,当原始算子可以被拆分为更小单元的算子时,将原始算子拆分为多个子原始算子,然后根据子原始算子的类型和执行顺序,建立子原始算子与目标网络模型中目标算子的算子映射关系。
若原始算子不能被拆分,则在目标网络模型中的算子库新增与原始算子相对应的目标算子,建立原始算子与目标算子的算子映射关系。
在本实施例中,当原始算子不能直接与目标网络模型的算子库中相应算子对应时,根据原始算子是否可以拆分的情况,分别进行处理,以建立原始算子与目标算子之间的算子映射关系,从而实现原始网络模型到目标网络模型的转换。
图2示出了本发明提供的深度学习模型的转换和推断方法的整体流程示意图,进一步解释了图1中获取目标网络模型的推断输出的过程。
如图2所示,首先将获取的原始网络模型转换为目标网络模型,然后对目标网络模型进行初始化,即设置目标网络模型的网络层定义和权重布局,在此基础上,根据预实现推断框架的要求,即获取预实现推断框架所需要的算子,通过模型分析器对目标网络模型进行解析,调用相应的算子库接口,以绑定预实现推断框架的输入和输出,然后执行多个输入输出形成的计算逻辑,完成推断过程,输出推断结果。推断完成后,便可释放资源,即释放内存。
另外,在深度学习模型的转换和推断过程中,还可以为特定的运行环境提供最优的实现。具体地,图3示出了本发明所提供的深度学习模型的转换和推断方法的推断实现示例图,对图1中根据目标网络模型获取推断输出的具体实现对象进行示例。
如图3所示,当原始模型转换为目标网络模型之后,目标网络模型作为一种通用的推断框架,可以根据实际硬件环境动态选择具体的推断框架来执行整个推断过程。具体地,通过模型解析器对目标网络模型进行解析,配置相应的预实现推断框架所需要的算子库接口,抽象执行器根据选定的推断框架来执行整个推断过程。
例如,在配备NVDIA GPU设备的情况下,可以使用TensorRT推断框架;配备Intel的CPU时,可以采用OpenVino推断框架;配备ARM芯片时,则可以使用NCNN推断框架。若硬件环境不属于前述NVDIA GPU设备、Intel的CPU和ARM芯片中的任一情况时,则可以直接通过本发明提供的通用推断框架来运行相应的模型。
图4示出了本发明所提供的深度学习模型的转换和推断系统的结构示意图。如图4所示,该系统包括:原始算子获取模块401,用于获取原始网络模型中包括的原始算子;映射关系建立模块402,用于定义目标网络模型,根据原始算子的类型和执行顺序,建立原始算子与目标网络模型中的算子库中相应算子的算子映射关系;模型转换模块403,用于根据算子映射关系,将原始网络模型转换为目标网络模型;模型构建模块404,用于基于预实现推断框架,通过模型分析器分析目标网络模型,调用目标网络模型提供的算子库接口,构建预实现网络模型;模型推断模块405,用于获取目标输入,并将其输入至预实现网络模型中,获取预实现网络模型的推断输出。本发明所提供的深度学习模型的转换和推断系统,与上文描述的深度学习模型的转换和推断方法可相互对应参照,在此不再赘述。
在本实施例中,通过原始算子获取模块401获取原始网络模型中包括的原始算子,映射关系建立模块402根据原始算子的类型和执行顺序,建立原始算子与目标网络模型的算子库中相应算子的算子映射关系,模型转换模块403根据该算子映射关系,可实现原始网络模型到目标网络模型的转换,当需要实现某一推断框架时,模型构建模块404通过模型分析器解析目标网络模型,调用目标网络模型提供的算子库接口,构建预实现网络模型,模型推断模块405根据目标输入,获取预实现网络模型的推断输出。该系统解决了现有技术中网络模型只能一一对应转换而导致的应用开发和部署不便的缺陷,实现了模型转换格式的统一,方便了应用的集成和部署。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行深度学习模型的转换和推断方法,该方法包括:获取原始网络模型中包括的原始算子;定义目标网络模型,根据所述原始算子的类型和执行顺序,建立所述原始算子与目标网络模型中的算子库中相应算子的算子映射关系;根据所述算子映射关系,将所述原始网络模型转换为所述目标网络模型;基于预实现推断框架,通过模型分析器解析所述目标网络模型,调用所述目标网络模型提供的算子库接口,构建预实现网络模型;其中,所述预实现推断框架为与所述目标网络模型适配的推断框架;获取目标输入,并将其输入至所述预实现网络模型中,获取所述预实现网络模型的推断输出。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的深度学习模型的转换和推断方法,该方法包括:获取原始网络模型中包括的原始算子;定义目标网络模型,根据所述原始算子的类型和执行顺序,建立所述原始算子与目标网络模型中的算子库中相应算子的算子映射关系;根据所述算子映射关系,将所述原始网络模型转换为所述目标网络模型;基于预实现推断框架,通过模型分析器解析所述目标网络模型,调用所述目标网络模型提供的算子库接口,构建预实现网络模型;其中,所述预实现推断框架为与所述目标网络模型适配的推断框架;获取目标输入,并将其输入至所述预实现网络模型中,获取所述预实现网络模型的推断输出。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的深度学习模型的转换和推断方法,该方法包括:获取原始网络模型中包括的原始算子;定义目标网络模型,根据所述原始算子的类型和执行顺序,建立所述原始算子与目标网络模型中的算子库中相应算子的算子映射关系;根据所述算子映射关系,将所述原始网络模型转换为所述目标网络模型;基于预实现推断框架,通过模型分析器解析所述目标网络模型,调用所述目标网络模型提供的算子库接口,构建预实现网络模型;其中,所述预实现推断框架为与所述目标网络模型适配的推断框架;获取目标输入,并将其输入至所述预实现网络模型中,获取所述预实现网络模型的推断输出。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种深度学习模型的转换和推断方法,其特征在于,包括:
获取原始网络模型中包括的原始算子;
定义目标网络模型,根据所述原始算子的类型和执行顺序,建立所述原始算子与所述目标网络模型的算子库中相应算子的算子映射关系;
根据所述算子映射关系,将所述原始网络模型转换为所述目标网络模型;
基于预实现推断框架,通过模型分析器解析所述目标网络模型,调用所述目标网络模型提供的算子库接口,构建预实现网络模型;其中,所述预实现推断框架为与所述目标网络模型适配的推断框架;
获取目标输入,并将其输入至所述预实现网络模型中,获取所述预实现网络模型的推断输出。
2.根据权利要求1所述的深度学习模型的转换和推断方法,其特征在于,所述定义目标网络模型,包括:
设置所述目标网络模型的模型格式,所述模型格式包括所述目标网络模型的网络层定义和权重布局。
3.根据权利要求1所述的深度学习模型的转换和推断方法,其特征在于,所述根据所述原始算子的类型和执行顺序,建立所述原始算子与目标网络模型中的算子库中相应算子的算子映射关系,包括:
设置预设融合模式,所述预设融合模式包括所述目标网络模型中的预设融合算子;
根据所述预设融合模式,对所述原始算子进行融合,得到融合算子;
建立所述融合算子与所述预设融合算子的融合算子映射关系;
相应地,所述根据所述算子映射关系,将所述原始网络模型转换为所述目标网络模型,包括:
根据所述融合算子映射关系,将所述原始网络模型转换为所述目标网络模型。
4.根据权利要求1所述的深度学习模型的转换和推断方法,其特征在于,所述根据所述原始算子的类型和执行顺序,建立所述原始算子与目标网络模型中的算子库中相应算子的算子映射关系,包括:
若根据所述原始算子的类型和执行顺序,在所述目标网络模型的算子库中未能查询到与其有直接对应关系的目标算子,则通过预设转换方式建立所述算子映射关系。
5.根据权利要求4所述的深度学习模型的转换和推断方法,其特征在于,所述通过预设转换方式建立所述算子映射关系,包括:
若所述原始算子能被拆分,则将所述原始算子拆分为多个子原始算子;
根据所述子原始算子的类型和执行顺序,建立所述子原始算子与所述目标网络模型中目标算子的算子映射关系。
6.根据权利要求4所述的深度学习模型的转换和推断方法,其特征在于,所述通过预设转换方式建立所述算子映射关系,还包括:
若所述原始算子不能被拆分,则在所述目标网络模型中的算子库中新增与所述原始算子相对应的目标算子,建立所述原始算子与所述目标算子的算子映射关系。
7.一种深度学习模型的转换和推断系统,其特征在于,包括:
原始算子获取模块,用于获取原始网络模型中包括的原始算子;
映射关系建立模块,用于定义目标网络模型,根据所述原始算子的类型和执行顺序,建立所述原始算子与所述目标网络模型的算子库中相应算子的算子映射关系;
模型转换模块,用于根据所述算子映射关系,将所述原始网络模型转换为所述目标网络模型;
模型构建模块,用于基于预实现推断框架,通过模型分析器分析所述目标网络模型,调用所述目标网络模型提供的算子库接口,构建预实现网络模型;其中,所述预实现推断框架为与所述目标网络模型适配的推断框架;
模型推断模块,用于获取目标输入,并将其输入至所述预实现网络模型中,获取所述预实现网络模型的推断输出。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述深度学习模型的转换和推断方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述深度学习模型的转换和推断方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述深度学习模型的转换和推断方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210350692.7A CN114897130A (zh) | 2022-04-02 | 2022-04-02 | 一种深度学习模型的转换和推断方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210350692.7A CN114897130A (zh) | 2022-04-02 | 2022-04-02 | 一种深度学习模型的转换和推断方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114897130A true CN114897130A (zh) | 2022-08-12 |
Family
ID=82715615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210350692.7A Pending CN114897130A (zh) | 2022-04-02 | 2022-04-02 | 一种深度学习模型的转换和推断方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114897130A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115762515A (zh) * | 2022-11-08 | 2023-03-07 | 北京百度网讯科技有限公司 | 用于语音识别的神经网络的处理和应用方法、装置及设备 |
-
2022
- 2022-04-02 CN CN202210350692.7A patent/CN114897130A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115762515A (zh) * | 2022-11-08 | 2023-03-07 | 北京百度网讯科技有限公司 | 用于语音识别的神经网络的处理和应用方法、装置及设备 |
CN115762515B (zh) * | 2022-11-08 | 2023-12-01 | 北京百度网讯科技有限公司 | 用于语音识别的神经网络的处理和应用方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113449858B (zh) | 一种神经网络模型的处理方法以及相关设备 | |
WO2022068623A1 (zh) | 一种模型训练方法及相关设备 | |
EP4145351A1 (en) | Neural network construction method and system | |
CN113065633B (zh) | 一种模型训练方法及其相关联设备 | |
CN110781686B (zh) | 一种语句相似度计算方法、装置及计算机设备 | |
CN113159273B (zh) | 一种神经网络的训练方法及相关设备 | |
WO2022012668A1 (zh) | 一种训练集处理方法和装置 | |
CN111797992A (zh) | 一种机器学习优化方法以及装置 | |
CN113505883A (zh) | 一种神经网络训练方法以及装置 | |
WO2021120177A1 (zh) | 编译神经网络模型的方法和装置 | |
CN111931901A (zh) | 一种神经网络构建方法以及装置 | |
CN111831285B (zh) | 一种面向内存计算平台的代码转换方法、系统及应用 | |
WO2024160186A1 (zh) | 一种模型训练方法及其相关设备 | |
CN114897130A (zh) | 一种深度学习模型的转换和推断方法及系统 | |
CN111652349A (zh) | 一种神经网络的处理方法及相关设备 | |
Gurevich et al. | Descriptive image analysis: Part IV. Information structure for generating descriptive algorithmic schemes for image recognition | |
CN116862951A (zh) | 一种基于Transformer的轻量化目标识别与跟踪系统及方法 | |
CN114445692B (zh) | 图像识别模型构建方法、装置、计算机设备及存储介质 | |
CN108376283B (zh) | 用于神经网络的池化装置和池化方法 | |
Gurevich et al. | Descriptive models of information transformation processes in image analysis | |
CN118095368A (zh) | 一种生成模型训练方法、数据转换方法以及装置 | |
Zhi et al. | Learning odes via diffeomorphisms for fast and robust integration | |
CN114120245A (zh) | 基于深度神经网络的人群图像分析方法、装置以及设备 | |
CN114626284A (zh) | 一种模型处理方法及相关装置 | |
WO2021068529A1 (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 |