CN111275199A - 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 - Google Patents
一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111275199A CN111275199A CN202010050425.9A CN202010050425A CN111275199A CN 111275199 A CN111275199 A CN 111275199A CN 202010050425 A CN202010050425 A CN 202010050425A CN 111275199 A CN111275199 A CN 111275199A
- Authority
- CN
- China
- Prior art keywords
- model file
- deep learning
- converted
- file
- target
- 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
- G06N20/00—Machine learning
Abstract
本发明公开了一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质,所述方法包括以下步骤,接收原始深度学习框架下取得的待转换模型文件;根据所述待转换模型文件的文件类型,选择相应的可读框架读取待转换模型文件,以获得待转换模型文件的载入信息;将载入信息进行解析和/或翻译处理,以获得中间规范的信息;根据中间规范的信息整合成中间规范模型文件;通过目标深度学习框架开启中间规范模型文件并启用目标深度学习框架的存储引擎将取得的中间规范模型文件保存为目标模型文件,所述目标模型文件可应用于目标深度学习框架,从而扩展了目标模型文件的应用环境。
Description
技术领域
本发明涉及深度学习技术领域,尤其涉及一种扩展了目标模型文件的应用环境的深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质。
背景技术
现有常用的深度学习框架有很多,在进行算法开发到算法部署的过程中,往往需要用到不同的框架。由于不同框架输出的模型文件互不兼容,用户在第一学习框架下训练得到的第一模型文件无法在第二学习框架的场景下使用,比如用户用Pytorch框架训练好了一个图像识别的模型,但是生产环境是使用 TensorFlow框架进行推理。传统方法需要用TensorFlow框架重写模型,然后再训练参数,这将是一个非常耗时耗力的过程。对于神经网络的结构,每种框架都有它自己的定义,并为模型设定它自己的保存格式,诸如此类的框架差异限制了模型文件的应用场景。
中国专利申请号CN201710669779揭露一种根据通用深度学习框架建立与 NPU模型对应的数据标准化框架;利用所述数据标准化框架将深度学习模型的参数转换为所述数据标准化框架的标准参数;将所述标准参数转换为NPU模型的参数。中国专利申请号CN201710669779针对各通用深度学习框架的参数结构为特定处理器建立统一的数据标准化框架,根据通用深度学习框架形成的深度学习模型的参数可以利用数据标准化框架统一的数据结构形成标准数据,使得处理器进行数据解析处理的过程与深度学习模型的结构相关性大大降低,使得处理器处理过程的开发与深度学习模型的开发可以有效分离。但是,中国专利申请号CN201710669779只揭示了将通用深度学习模型转换为单一的NPU模型的参数,并未揭示将通用深度学习模型转换为其它深度学习框架下的模型文件,应用环境仍具局限性。
发明内容
本发明的目的是提供一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质,可有效扩展模型文件的应用场景。
为实现所述目的,本发明提供一种深度学习模型文件的转换方法,其包括以下步骤:
接收原始深度学习框架下取得的待转换模型文件;
根据所述待转换模型文件的文件类型,选择相应的可读框架读取待转换模型文件,以获得待转换模型文件的载入信息;
将所述载入信息进行解析和/或翻译处理,以获得中间规范的信息;
根据中间规范的信息整合成中间规范模型文件;
通过目标深度学习框架开启中间规范模型文件并启用目标深度学习框架的存储引擎将取得的中间规范模型文件保存为目标模型文件,所述目标模型文件可应用于目标深度学习框架。
进一步地,所述原始深度学习框架包括Caffe、Keras、MXNet、Tensorflow、Microsoft Cognitive Toolkit(CNTK)、PyTorch、CoreML的任一种,所述目标深度学习框架包括Caffe、Keras、MXNet、Tensorflow、Microsoft Cognitive Toolkit(CNTK)、PyTorch、CoreML的任一种。
进一步地,所述待转换模型文件包括完整的模型文件和不完整的模型文件,所述完整的模型文件包括权重文件与网络结构代码,不完整的模型文件包括权重文件而不包括网络结构代码。
进一步地,获得待转换模型文件的载入信息的步骤包括,
识别待转换模型文件对应的原始深度学习框架;
判断待转换模型文件是否为完整的模型文件;
若是,则加载处理以获得待转换模型文件的载入信息;
若否,则提示补充并等待补充,然后返回执行判断待转换模型文件是否为完整的模型文件。
进一步地,获得待转换模型文件的载入信息的步骤包括:
识别待转换模型文件对应的原始深度学习框架;
通过识别待转换模型文件的保存代码判断待转换模型文件是否需要进一步完整性检查;
若不需要进一步完整性检查,则加载处理以获得待转换模型文件的载入信息;
若需要进一步完整性检查,则检查待转换模型文件的内容是否存在网络结构代码的特征;
若存在网络结构代码,则加载处理以获得待转换模型文件的载入信息;
若不存在网络结构代码,则提示补充并等待补充,然后返回执行通过识别待转换模型文件的保存代码判断待转换模型文件是否需要进一步完整性检查。
进一步地,所述载入信息为载入网络结构代码与权重文件内的信息,所述载入信息包括数据类型、运算单元、计算图、激活子、通道维度。
为实现所述目的,本发明还提供一种深度学习模型文件的转换系统,其包括:
接收模块,其用于接收原始深度学习框架下取得的待转换模型文件;
模型载入模块,其用于根据所述待转换模型文件的文件类型,选择相应的可读框架读取待转换模型文件,以获得待转换模型文件的载入信息;
信息转换模块,其用于将所述载入信息进行解析和/或翻译处理,以获得中间规范的信息;
合成模块,其用于根据中间规范的信息整合成中间规范模型文件;
模型转换模块,其用于通过目标深度学习框架开启中间规范模型文件并启用目标深度学习框架的存储引擎将取得的中间规范模型文件保存为目标模型文件,所述目标模型文件可应用于目标深度学习框架。
为实现所述目的,本发明还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述深度学习模型文件的转换方法的步骤。
为实现所述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述深度学习模型文件的转换方法的步骤。
本发明提供的深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质能克服框架差异对模型文件的应用场景的限制,在原始深度学习框架下训练得到的待转换模型文件,可通过智能读取、解析和/或翻译处理后生成中间规范模型文件,再经目标深度学习框架读取并保存为目标模型文件,目标模型文件可在目标深度学习框架下应用或者再训练,且同一中间规范模型文件可经过不同的目标深度学习框架读取保存得到对应的目标模型文件,用户可根据需要选择任一目标深度学习框架下的目标模型文件,扩展了目标模型文件的应用环境。此外,本发明通过智能识别待转换模型文件的完整性以确保模型文件的顺利载入。
附图说明
图1为本发明深度学习模型文件的转换方法实施例一的流程图;
图2为本发明深度学习模型文件的转换方法实施例一的流程图;
图3为本发明深度学习模型文件的转换方法实施例三的流程图;
图4为本发明深度学习模型文件的转换系统的模块图;
图5为本发明深度学习模型文件的转换方法的计算机设备的硬件结构示意图;
图6为计算图示例。
附图标记:
1、深度学习模型文件的转换系统 10、接收模块 20、模型载入模块
30、信息转换模块 40、合成模块 50、模型转换模块
2、计算机设备 21、存储器 22、处理器
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质,用于将原始深度学习框架下取得的待转换模型文件转换成可应用于目标深度学习框架的目标模型文件,待转换模型文件与目标模型文件互不兼容。于本实施例中,所述原始深度学习框架包括Caffe、Keras、MXNet、 Tensorflow、Microsoft Cognitive Toolkit(CNTK)、PyTorch、CoreML的任一种,所述目标深度学习框架包括Caffe、Keras、MXNet、Tensorflow、Microsoft Cognitive Toolkit(CNTK)、PyTorch、CoreML的任一种。可在计算机设备上安装尽可能多的目标深度学习框架,所有目标深度学习框架适用于中间规范模型文件的训练和应用,以应对不同用户的转换需求。
实施例一
请参阅图1所示,本发明深度学习模型文件的转换方法包括以下步骤:
步骤S10:接收原始深度学习框架下取得的待转换模型文件。
于本实施例中,待转换模型文件具备权重文件与网络结构代码,待转换模型文件为完整的模型文件。
步骤S20:根据所述待转换模型文件的文件类型,选择相应的可读框架读取待转换模型文件,以获得待转换模型文件的载入信息。
于本实施例中,所述载入信息为载入网络结构代码与权重文件内的信息,载入信息包括数据类型、运算单元、计算图、激活子、通道维度。
于本实施例中,智能定位关键代码,调用待转换模型文件对应的原始深度学习框架,获得待转换模型文件的载入信息。
其中,定位关键代码可通过以下方式实现:可根据不同深度学习框架的模型文件自行设定若干个判断要素,判断要素的数量也可根据需要设定,以 Pytorch框架为例,设定Pytorch框架下的模型文件的判断要素有三个,第一个判断要素是class关键字,第二个判断要素是该class里存在forward()函数,第三个判断要素是该类继承了nn.Module。若以Keras框架为例,设定Keras框架下的模型文件的判断要素有两个,第一个判断要素是:找到Model类,第二个判断要素是:确保Model类由keras.models模块导入得到。如此,便可找到模型网络结构代码并获得待转换模型文件的载入信息。
步骤S30:将所述载入信息进行解析和/或翻译处理,以获得中间规范的信息。
中间规范的信息为本发明自定义的信息,数据类型、运算单元、计算图、激活子、通道维度是现有的概念,是深度学习模型里很重要的操作/参数。但因不同的深度学习框架对这些操作/参数都要匹配的变量命名规范,如线性修正单元激活子(relu)函数,pytorch框架定义为torch.nn.functional.relu,输入参数名为 input;而tensorflow框架定义为tensorflow.nn.relu,输入参数定义为features。由于相当功能的操作运算(比如这边举例的线性修正单元激函数)在不同深度学习框架有不一样的变量命名规范,本发明定义一种中间规范,以方便不同框架之间的转换。线性修正单元激活子中间规范名为relu,输入参数变量名统一为 inputs。
于本实施例中,根据步骤S20取得的待转换模型文件的框架类型选择相应的解析模块,通过选择的解析模块对载入信息中的数据类型、运算单元、计算图进行解析处理,以得到转换中数据类型、转换中运算单元与中间规范的计算图。
不同框架下产生的待转换模型文件的数据类型、运算单元、计算图的类型是不一样的,他们拥有自己的类型。以pytorch框架为例:
数据类型包括:
torch.float16、torch.float32、torch.float64、torch.int32、torch.uint16等。
运算单元如:
F.Conv2d(3,64,kernel_size=(7,7),stride=(2,2),padding=(3,3), bias=False)、F.MaxPool2d(kernel_size=3,stride=2,padding=1,dilation=1, ceil_mode=False)等
而计算图以OrderedDict格式存储:
计算图示例:
(conv1):Conv2d(3,64,kernel_size=(7,7),stride=(2,2),padding=(3, 3),bias=False)
(bn1):BatchNorm2d(64,eps=1e-05,momentum=0.1,affine=True, track_running_stats=True)
(relu):ReLU(inplace)
(maxpool):MaxPool2d(kernel_size=3,stride=2,padding=1,dilation=1,ceil_mode=False)
计算图(Graph,又称数据流图)被定义为有向无环图(directed acyclic graph),张量和运算单元都是图中的对象,运算单元是图的节点,张量是图的边上流动的数据。无环(acyclic)这个限定词很重要,即这些图不能有循环。张量x不能成为生成x的某一层的输入。唯一允许的处理循环(即循环连接)是循环层的内部循环。
深度学习框架使用计算图将计算表示为独立的指令之间的依赖关系,我们可以通俗地将计算图理解为表达和评估数学表达式的一种方式。例如,这里有个简单的数学公式:
g=(x+y)*z
上述方程可绘制成图6所示的计算图,图6的计算图示例虽然简单,但它包括了前向推理模型所需的基本要素。所谓前向传播,可简单理解为模型将张量(x、y、z)从左侧输入向前传递(即有序接受运算单元的处理)到右侧输出,最终得到推理值(g)。
常见的深度神经网络模型(Inception、ResNet等)包括了一些较为复杂的运算单元,比如残差卷积单元、池化、非线性激活、Bottleneck等节点(PS:通常这些节点也可能归属于网络的某一层layer,一个layer可能包括1个或多个基本运算单元)。此外,涉及训练的模型需包括损失函数、梯度计算等反向传播所必须的运算单元。
解析模块包括DataParse解析器、OperatorParser解析器和GraphParser解析器。DataParse解析器、OperatorParser解析器和GraphParser解析器三个解析器分别得到了数据类型,运算单元和计算图的中间规范信息。
本发明使用DataParse解析器对数据类型进行解析处理,DataParse解析器首先会调用pytorch框架载入待转换模型文件,使用model.dtype命令获取数据类型后,使用映射字典将其解析为转换中数据类型。
映射字典举例:
dtype_map={
"torch.float16":DT_FLOAT16,
"torch.float32":DT_FLOAT32,
"torch.float64":DT_FLOAT64,
"torch.int16":DT_INT16,
"torch.int32":DT_INT32,
"torch.int64":DT_INT64,
"torch.uint8":DT_UINT8,
"torch.uint16":DT_UINT16
}
映射字典可以将各深度学习框架自有变量(即对数据类型(张量类型)、运算单元和计算图的自定义格式)转化为中间规范信息,如本例中,数据类型有int16 和float32等,pytorch框架对这两个数据类型定义为torch.int16和torch.float32,通过上述字典,将torch.int16和torch.float32分别映射为DT_INT16和 DT_FLOAT32这两个转换中数据类型。
使用OperatorParser解析器将运算单元解析为转换中运算单元,例如,转换中运算单元为{‘operaor’:‘Conv2d’,‘parameters’:{‘channel’:3,‘filter’:64,‘kernel_size’:7,‘stride’:2,‘padding’:3,‘bias’:False),并将转换中运算单元存于OP1变量中;
使用GraphParser解析器将所述计算图解析为中间规范的计算图,其中,中间规范的计算图可为json格式,例如,中间规范的计算图为:
{
“conv1”:‘OP1’,
“bn1”:‘OP2’,
“relu”:‘OP3’,
“maxpool”:‘OP4’,
}
使用json数据格式比较简单,易于读写,易于解析,且支持多种编程语言。例如本例中所述计算图的第一个运算单元是“conv1”,第4个运算单元是“maxpool”。
其中OP1-OP4为运算单元解析后的结果。
根据步骤S20取得的待转换模型文件的框架类型选择相应的翻译模块。
于本实施例中,所述翻译模块对载入信息中的激活子、通道维度进行翻译处理,以得到中间规范的激活子、通道维度。所述翻译模块还对所述转换中数据类型进行翻译处理,以得到中间规范的数据类型;所述翻译模块对转换中运算单元进行翻译处理,以得到中间规范的运算单元。具体地,所述翻译模块包括数据类型翻译器、激活子翻译器和网络层翻译器,翻译模块首先会识别解析模块得到的转换中数据类型与转换中运算单元,并通过数据类型翻译器对转换中数据类型与通道维度进行翻译处理,通过激活子翻译器对激活子进行翻译处理,通过网络层翻译器对转换中运算单元进行翻译处理。具体实施方式如下所示:
数据类型翻译器用于将所述解析得到的转换中数据类型与通道维度翻译为中间规范的数据类型与中间规范的通道维度,数据类型翻译器需至少使用 translate_input_layer函数。输入层是深度学习数据输入到模型的接口,对于图片张量数据,它至少须约束张量数据的数据类型、数据维度和通道信息。但由于不同深度学习框架识别的数据类型变量名不同,通道信息也不同,因此将中间规范翻译为目标深度学习框架支持的格式时,通过“translate_input_layer”函数去实现将这种格式转换(翻译)。所述函数的输入参数为框架名fwname,通道维度channel_type,和数据类型dtype。
假设待转换模型文件的通道维度channel_type=‘first’,而目标深度学习框架tensorflow支持的是‘last’,因此translate_input_layer函数将输入数据进行维度转变(reshape),将通道信息放置最后一维。而dtype即为所述解析模块解析得到的DT_FLOAT32,当fwname=‘tensorflow’时,DT_FLOAT32会被翻译为‘tf.float32’,最终可用于创建占位符变量placeholder(shape,tf.float32),用于存储输入数据。
网络层翻译器用于将所述解析得到的运算单元翻译为中间规范的中间规范的运算单元,网络层翻译器需使用运算单元翻译函数。由于运算单元过多,不再进行一一阐述。以Conv2d运算单元为例:
本发明使用cond2d_converter函数传入解析得到的‘parameters’各参数,并翻译成中间规范的运算单元:
tf.nn.conv2d(filter=[7,7,3,64],strides=[2,2],padding='VALID')。
步骤S40:根据中间规范的信息整合成中间规范模型文件。
经翻译模块获得的中间规范的数据类型、通道维度、运算单元、激活子按照解析模块得到的计算图(json格式)顺序进行拼接,从而整合成中间规范模型文件。
步骤S50:通过目标深度学习框架开启中间规范模型文件并启用目标深度学习框架的存储引擎将取得的中间规范模型文件保存为目标模型文件,所述目标模型文件可应用于目标深度学习框架。
例如,将Keras深度学习框架下的模型文件转换成中间规范模型文件后,再选择Pytorch深度学习框架开启中间规范模型文件,生成并保存Pytorch深度学习框架下的模型文件,也可根据不同用户需求选择其它深度学习框架(如 Caffe、MXNet、Tensorflow、Microsoft Cognitive Toolkit(CNTK)或CoreML)开启中间规范模型文件生成并保存相应深度学习框架的模型文件。
实施例二
请参阅图2所示,本发明深度学习模型文件的转换方法包括以下步骤:
步骤S10:接收原始深度学习框架下取得的待转换模型文件。
于本实施例中,所述待转换模型文件包括完整的模型文件和不完整的模型文件,所述完整的模型文件包括权重文件与网络结构代码,不完整的模型文件包括权重文件而不包括网络结构代码。
步骤S210:识别待转换模型文件对应的原始深度学习框架。
步骤S220:判断待转换模型文件是否为完整的模型文件;若是,则执行步骤S230;若否,则执行步骤S240;
步骤S230:加载处理以获得待转换模型文件的载入信息。
于本实施例中,完整的模型文件(其包括权重文件与网络结构代码)的载入信息包括数据类型、运算单元、计算图、激活子、通道维度。
不完整的模型文件(其包括权重文件而不包括网络结构代码)的载入信息包括运算单元、计算图、激活子、通道维度,而补充上传的网络结构代码或网络结构文件中包括数据类型。
步骤S240:提示补充并等待补充,然后返回步骤S220;
步骤S30:将所述载入信息进行解析和/或翻译处理,以获得中间规范的信息;
步骤S40:根据中间规范的信息整合成中间规范模型文件;
步骤S50:通过目标深度学习框架开启中间规范模型文件并启用目标深度学习框架的存储引擎将取得的中间规范模型文件保存为目标模型文件,所述目标模型文件可应用于目标深度学习框架。
实施例三
请参阅图3所示,本发明深度学习模型文件的转换方法包括以下步骤:
步骤S10:接收原始深度学习框架下取得的待转换模型文件;
步骤S210:识别待转换模型文件对应的原始深度学习框架;
步骤S2210:通过识别待转换模型文件的保存代码判断待转换模型文件是否需要进一步完整性检查;若是,则执行步骤S2220;若否,则执行步骤S230;
步骤S2220:检查待转换模型文件的内容是否存在网络结构代码的特征;若是,则执行步骤S230;若否,则执行步骤S240;
步骤S230:加载处理以获得待转换模型文件的载入信息;
步骤S240:提示补充并等待补充,然后返回步骤S2210;
步骤S30:将所述载入信息进行解析和/或翻译处理,以获得中间规范的信息;
步骤S40:根据中间规范的信息整合成中间规范模型文件;
步骤S50:通过目标深度学习框架开启中间规范模型文件并启用目标深度学习框架的存储引擎将取得的中间规范模型文件保存为目标模型文件,所述目标模型文件可应用于目标深度学习框架。
直接通过保存代码可判断模型文件为完整的模型文件具体实例有,取得 Keras深度学习框架下的模型文件1与模型文件2,且Keras深度学习框架下的模型文件1的保存代码为model.to_jason('*.json'),Keras深度学习框架下的模型文件2的保存代码为model.save_weights('*h5'),可识别为模型文件1中含有网络结构代码,而模型文件2为权重文件。
需进一步检查待转换模型文件的内容是否存在网络结构代码的特征的具体实例有,Keras深度学习框架下的模型文件的保存代码为model.save('*h5'),需进一步检查待转换模型文件的内容是否存在网络结构代码的特征,如存在,则为完整的模型文件,如不存在,则为不完整的模型文件。
本发明能克服框架差异对模型文件的应用场景的限制,在原始深度学习框架下训练得到的待转换模型文件,可通过智能读取、解析和/或翻译处理后生成中间规范模型文件,再经目标深度学习框架读取并保存为目标模型文件,目标模型文件可在目标深度学习框架下应用或者再训练,且同一中间规范模型文件可经过不同的目标深度学习框架读取保存得到对应的目标模型文件,用户可根据需要选择任一目标深度学习框架下的目标模型文件,扩展了目标模型文件的应用环境。此外,本发明通过智能识别待转换模型文件的完整性以确保模型文件的顺利载入。
实施例四:
请参阅图4所示,本发明还提供一种深度学习模型文件的转换系统,其包括:
接收模块10,其用于接收原始深度学习框架下取得的待转换模型文件;
模型载入模块20,其用于根据所述待转换模型文件的文件类型,选择相应的可读框架读取待转换模型文件,以获得待转换模型文件的载入信息;
信息转换模块30,其用于将所述载入信息进行解析和/或翻译处理,以获得中间规范的信息;
合成模块40,其用于根据中间规范的信息整合成中间规范模型文件;
模型转换模块50,其用于通过目标深度学习框架开启中间规范模型文件并启用目标深度学习框架的存储引擎将取得的中间规范模型文件保存为目标模型文件,所述目标模型文件可应用于目标深度学习框架。
实施例五:
请参阅图5所示,本发明还提供一种计算机设备2,所述计算机设备2包括:
存储器21,用于存储可执行程序代码;以及
处理器22,用于调用所述存储器21中的所述可执行程序代码,执行步骤包括上述的深度学习模型文件的转换方法。
图5中以一个处理器22为例。
存储器21作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的深度学习模型文件的转换方法对应的程序指令/模块。处理器22通过运行存储在存储器 21中的非易失性软件程序、指令以及模块,从而执行计算机设备2的各种功能应用以及数据处理,即实现上述方法实施例深度学习模型文件的转换方法。
存储器21可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储用户在计算机设备2的信息。此外,存储器21可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器21可选包括相对于处理器22远程设置的存储器21,这些远程存储器21可以通过网络连接至深度学习模型文件的转换系统1。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器21中,当被所述一个或者多个处理器22执行时,执行上述任意方法实施例中的深度学习模型文件的转换方法,例如,执行以上描述的图1-图3的程序。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例的计算机设备2以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
实施例六:
本申请又一实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图5中的一个处理器22,可使得上述一个或多个处理器22 可执行上述任意方法实施例中的深度学习模型文件的转换方法,例如,执行以上描述的图1-图3的程序。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM) 或随机存储记忆体(RandomAccessMemory,RAM)等。
所述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到所述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种深度学习模型文件的转换方法,其特征在于,包括以下步骤:
接收原始深度学习框架下取得的待转换模型文件;
根据所述待转换模型文件的文件类型,选择相应的可读框架读取待转换模型文件,以获得待转换模型文件的载入信息;
将所述载入信息进行解析和/或翻译处理,以获得中间规范的信息;
根据中间规范的信息整合成中间规范模型文件;
通过目标深度学习框架开启中间规范模型文件并启用目标深度学习框架的存储引擎将取得的中间规范模型文件保存为目标模型文件,所述目标模型文件可应用于目标深度学习框架。
2.根据权利要求1所述的深度学习模型文件的转换方法,其特征在于,所述原始深度学习框架包括Caffe、Keras、MXNet、Tensorflow、Microsoft Cognitive Toolkit(CNTK)、PyTorch、CoreML的任一种,所述目标深度学习框架包括Caffe、Keras、MXNet、Tensorflow、Microsoft Cognitive Toolkit(CNTK)、PyTorch、CoreML的任一种。
3.根据权利要求1所述的深度学习模型文件的转换方法,其特征在于,所述待转换模型文件包括完整的模型文件和不完整的模型文件,所述完整的模型文件包括权重文件与网络结构代码,不完整的模型文件包括权重文件而不包括网络结构代码。
4.根据权利要求3所述的深度学习模型文件的转换方法,其特征在于,获得待转换模型文件的载入信息的步骤包括:
识别待转换模型文件对应的原始深度学习框架;
判断待转换模型文件是否为完整的模型文件;
若是,则加载处理以获得待转换模型文件的载入信息;
若否,则提示补充并等待补充,然后返回执行判断待转换模型文件是否为完整的模型文件。
5.根据权利要求3所述的深度学习模型文件的转换方法,其特征在于,获得待转换模型文件的载入信息的步骤包括:
识别待转换模型文件对应的原始深度学习框架;
通过识别待转换模型文件的保存代码判断待转换模型文件是否需要进一步完整性检查;
若不需要进一步完整性检查,则加载处理以获得待转换模型文件的载入信息;
若需要进一步完整性检查,则检查待转换模型文件的内容是否存在网络结构代码的特征;
若存在网络结构代码,则加载处理以获得待转换模型文件的载入信息;
若不存在网络结构代码,则提示补充并等待补充,然后返回执行通过识别待转换模型文件的保存代码判断待转换模型文件是否需要进一步完整性检查。
6.根据权利要求5所述的深度学习模型文件的转换方法,其特征在于,所述载入信息为载入网络结构代码与权重文件内的信息,所述载入信息包括数据类型、运算单元、计算图、激活子、通道维度。
7.一种深度学习模型文件的转换系统,其特征在于,包括:
接收模块,其用于接收原始深度学习框架下取得的待转换模型文件;
模型载入模块,其用于根据所述待转换模型文件的文件类型,选择相应的可读框架读取待转换模型文件,以获得待转换模型文件的载入信息;
信息转换模块,其用于将所述载入信息进行解析和/或翻译处理,以获得中间规范的信息;
合成模块,其用于根据中间规范的信息整合成中间规范模型文件;
模型转换模块,其用于通过目标深度学习框架开启中间规范模型文件并启用目标深度学习框架的存储引擎将取得的中间规范模型文件保存为目标模型文件,所述目标模型文件可应用于目标深度学习框架。
8.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010050425.9A CN111275199A (zh) | 2020-01-17 | 2020-01-17 | 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010050425.9A CN111275199A (zh) | 2020-01-17 | 2020-01-17 | 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111275199A true CN111275199A (zh) | 2020-06-12 |
Family
ID=71003512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010050425.9A Pending CN111275199A (zh) | 2020-01-17 | 2020-01-17 | 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111275199A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111784000A (zh) * | 2020-07-16 | 2020-10-16 | 矩阵元技术(深圳)有限公司 | 数据处理方法、装置和服务器 |
CN111967568A (zh) * | 2020-06-29 | 2020-11-20 | 北京百度网讯科技有限公司 | 深度学习模型的适配方法、装置及电子设备 |
CN112819153A (zh) * | 2020-12-31 | 2021-05-18 | 杭州海康威视数字技术股份有限公司 | 一种模型转化方法及装置 |
CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
CN113723601A (zh) * | 2021-08-30 | 2021-11-30 | 北京市商汤科技开发有限公司 | 神经网络模型的转换方法、装置、设备及存储介质 |
CN114356787A (zh) * | 2022-03-18 | 2022-04-15 | 江苏清微智能科技有限公司 | 深度学习模型编译器的自动化测试方法、装置及存储介质 |
CN114511100A (zh) * | 2022-04-15 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 一种支持多引擎框架的图模型任务实现方法和系统 |
CN114913513A (zh) * | 2021-10-12 | 2022-08-16 | 北京九章云极科技有限公司 | 一种公章图像的相似度计算方法、装置、电子设备和介质 |
CN115203132A (zh) * | 2022-09-15 | 2022-10-18 | 上海波客实业有限公司 | 一种用于按需求快速提取op2文件架构的设计方法 |
CN115496217A (zh) * | 2022-11-16 | 2022-12-20 | 深圳鲲云信息科技有限公司 | 一种推理验证方法、装置、电子设备和存储介质 |
CN115878096A (zh) * | 2023-01-31 | 2023-03-31 | 北京面壁智能科技有限责任公司 | 深度学习模型统一应用方法、装置、服务器及存储介质 |
CN111784000B (zh) * | 2020-07-16 | 2024-05-17 | 矩阵元技术(深圳)有限公司 | 数据处理方法、装置和服务器 |
-
2020
- 2020-01-17 CN CN202010050425.9A patent/CN111275199A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967568B (zh) * | 2020-06-29 | 2023-09-01 | 北京百度网讯科技有限公司 | 深度学习模型的适配方法、装置及电子设备 |
CN111967568A (zh) * | 2020-06-29 | 2020-11-20 | 北京百度网讯科技有限公司 | 深度学习模型的适配方法、装置及电子设备 |
CN111784000A (zh) * | 2020-07-16 | 2020-10-16 | 矩阵元技术(深圳)有限公司 | 数据处理方法、装置和服务器 |
CN111784000B (zh) * | 2020-07-16 | 2024-05-17 | 矩阵元技术(深圳)有限公司 | 数据处理方法、装置和服务器 |
CN112819153A (zh) * | 2020-12-31 | 2021-05-18 | 杭州海康威视数字技术股份有限公司 | 一种模型转化方法及装置 |
CN112819153B (zh) * | 2020-12-31 | 2023-02-07 | 杭州海康威视数字技术股份有限公司 | 一种模型转化方法及装置 |
CN112947935A (zh) * | 2021-02-26 | 2021-06-11 | 上海商汤智能科技有限公司 | 运算方法及装置、电子设备和存储介质 |
CN113723601A (zh) * | 2021-08-30 | 2021-11-30 | 北京市商汤科技开发有限公司 | 神经网络模型的转换方法、装置、设备及存储介质 |
CN114913513A (zh) * | 2021-10-12 | 2022-08-16 | 北京九章云极科技有限公司 | 一种公章图像的相似度计算方法、装置、电子设备和介质 |
CN114356787A (zh) * | 2022-03-18 | 2022-04-15 | 江苏清微智能科技有限公司 | 深度学习模型编译器的自动化测试方法、装置及存储介质 |
CN114511100A (zh) * | 2022-04-15 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 一种支持多引擎框架的图模型任务实现方法和系统 |
CN114511100B (zh) * | 2022-04-15 | 2023-01-13 | 支付宝(杭州)信息技术有限公司 | 一种支持多引擎框架的图模型任务实现方法和系统 |
CN115203132A (zh) * | 2022-09-15 | 2022-10-18 | 上海波客实业有限公司 | 一种用于按需求快速提取op2文件架构的设计方法 |
CN115496217A (zh) * | 2022-11-16 | 2022-12-20 | 深圳鲲云信息科技有限公司 | 一种推理验证方法、装置、电子设备和存储介质 |
CN115878096B (zh) * | 2023-01-31 | 2023-05-23 | 北京面壁智能科技有限责任公司 | 深度学习模型统一应用方法、装置、服务器及存储介质 |
CN115878096A (zh) * | 2023-01-31 | 2023-03-31 | 北京面壁智能科技有限责任公司 | 深度学习模型统一应用方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111275199A (zh) | 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 | |
Brady | Type-driven development with Idris | |
CN111708539B (zh) | 一种应用程序代码转换方法、装置、电子设备和存储介质 | |
CN112819153B (zh) | 一种模型转化方法及装置 | |
CN112947935A (zh) | 运算方法及装置、电子设备和存储介质 | |
CN111428520A (zh) | 一种文本翻译方法及装置 | |
WO2021000971A1 (zh) | 操作数据的生成方法、装置及相关产品 | |
US20240062116A1 (en) | Model processing method and apparatus | |
CN112558984A (zh) | 代码编译的方法、装置、电子设备以及服务器 | |
CN113449856A (zh) | 一种控制流图的处理方法及相关设备 | |
KR102002732B1 (ko) | 앙상블 모델을 이용한 심층 신경망 기반 데이터 처리 방법 및 장치 | |
CN114116510A (zh) | 一种接口参数校验方法及装置 | |
CN117370523A (zh) | 大语言模型应用服务方法及装置 | |
CN111651989B (zh) | 命名实体识别方法和装置、存储介质及电子装置 | |
CN112988163A (zh) | 编程语言智能适配方法、装置、电子设备和介质 | |
CN116560666A (zh) | 基于多层级代码生成的ai前端统一计算方法、装置及介质 | |
WO2022105743A1 (zh) | 一种算子计算方法、装置、设备及系统 | |
CN112749364B (zh) | 基于人工智能的网页生成方法、装置、设备及存储介质 | |
CN114327405A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN106682221B (zh) | 问答交互的响应方法、装置及问答系统 | |
CN112257856A (zh) | 深度学习框架确定方法、设备及可读存储介质 | |
CN113391813A (zh) | 程序编译方法和装置、存储介质及电子设备 | |
Heitzinger | Algorithms with JULIA: Optimization, Machine Learning, and Differential Equations Using the JULIA Language | |
Park et al. | Interworking technology of neural network and data among deep learning frameworks | |
CN112463158B (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 |