CN115511060A - 模型的转换方法、装置、存储介质及电子装置 - Google Patents
模型的转换方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN115511060A CN115511060A CN202211261281.7A CN202211261281A CN115511060A CN 115511060 A CN115511060 A CN 115511060A CN 202211261281 A CN202211261281 A CN 202211261281A CN 115511060 A CN115511060 A CN 115511060A
- Authority
- CN
- China
- Prior art keywords
- target
- operator
- priority
- model
- layer
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种模型的转换方法、装置、存储介质及电子装置,其中,该方法包括:获取待转换的第一模型的第一目标层对应的目标算子参数;基于目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行目标算子参数的目标实现方法;基于目标实现方法,以及目标算子参数,得到目标模型的第二目标层。通过本发明,提供了一种不需要搭建深度学习框架环境,即可将深度学习模型转为在特定设备类型上可执行的目标模型,简化了现有技术中将深度学习模型转换为设备上可执行模型的操作流程,且在转换过程中确定网络层最优实现,在一定程度上提高了深度学习模型转为设备可执行模型的效率。
Description
技术领域
本发明实施例涉及深度学习技术领域,具体而言,涉及一种模型的转换方法、装置、存储介质及电子装置。
背景技术
随着人工智能领域的迅速发展,产生了多种深度学习框架,如caffe、tensorflow、pytorch等。不同的深度学习框架对应不同的训练、执行操作。为执行不同框架的模型,需要部署不同的深度学习环境。且目前更趋近于算法模型落地,即将深度学习模型经过某种转换得到目标模型,使得其可在设备(例如,边缘设备或其他类型的设备,下边以边缘设备为例进行说明)上执行。
现有技术中,在对深度学习模型进行转换得到可在边缘设备上执行的目标模型时,需要将经过训练的深度学习模型转化成预定义格式的模型,再根据边缘设备上的芯片类型将预定义模型转换为边缘设备芯片上可执行的模型,因为需要先将深度学习模型转化成预定义格式的模型,使模型转换的方式较为繁琐,导致模型转换的效率较低。
针对相关技术中存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种模型的转换方法、装置、存储介质及电子装置,以至少解决相关技术中模型转换的效率较低的问题。
根据本发明的一个实施例,提供了一种模型的转换方法,包括:获取待转换的第一模型的第一目标层对应的目标算子参数,其中,所述目标算子参数是根据所述第一目标层的层类型所确定的;基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法,其中,所述目标优先级用于指示每一个所述实现方法的优先级;基于所述目标实现方法,以及所述目标算子参数,得到目标模型的第二目标层。
可选地,在基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法之前,还包括:通过以下方式至少之一确定所述目标优先级:第一方式,其中,所述第一方式包括确定预先为所述目标算子参数所配置的对应每一个实现方法的优先级;第二方式,其中,所述第二方式包括确定预先为所述目标设备所配置的对应每一个所述实现方法的优先级;第三方式,其中,所述第三方式包括确定每一个所述实现方法运行所述目标算子参数所分别耗费的时长,基于所述时长确定每一个所述实现方法的优先级。
可选地,选择所述第一方式的优先级高于选择所述第二方式的优先级,选择所述第二方式的优先级高于选择所述第三方式的优先级。
可选地,基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法包括:基于所述目标算子参数和预设的限制条件,在一个或多个计算方法中确定目标计算方法,其中,所述计算方法包括不同模型对相同层类型对应的算子参数的计算方法;获取用于实现所述目标计算方法的一个或多个第一实现方法;在一个或多个所述第一实现方法中,按照所述目标优先级确定在所述目标设备中用于运行所述目标算子参数的所述目标实现方法。
可选地,基于所述目标实现方法,以及所述目标算子参数,得到所述目标模型的所述第二目标层包括:对应保存所述目标实现方法以及所述目标算子参数,得到所述目标模型的所述第二目标层。
可选地,获取第一模型的第一目标层对应的目标算子参数,包括:获取所述第一目标层的第一网络结构参数;确定与所述第一目标层的层类型对应的第一算子;将所述第一网络结构参数赋值给所述第一算子,得到所述目标算子参数。
可选地,在基于所述目标实现方法,以及所述目标算子参数,得到所述目标模型的所述第二目标层之后,所述方法还包括:获取所述第一网络结构参数中包括的参数数据量信息;根据所述参数数据量信息,为所述第二目标层分配存储内存。
根据本发明的另一个实施例,提供了一种模型的转换装置,包括:获取模块,用于获取待转换的第一模型的第一目标层对应的目标算子参数,其中,所述目标算子参数是根据所述第一目标层的层类型所确定的;确定模块,用于基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法,其中,所述目标优先级用于指示每一个所述实现方法的优先级;获得模块,用于基于所述目标实现方法,以及所述目标算子参数,得到目标模型的第二目标层。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过获取待转换的第一模型的第一目标层对应的目标算子参数,并基于目标算子参数以及预先确定出的目标优先级确定在目标设备中用于运行目标算子参数的目标实现方法,基于目标实现方法和目标算子参数可以得到目标模型的第二目标层,进而通过将第一模型的第一目标层转换为目标模型的第二目标层,实现逐层将第一模型转换为可以运行在目标设备中的目标模型,通过本发明,提供了一种不需要搭建深度学习框架环境,即可将深度学习模型转为在特定设备类型上可执行的目标模型,简化了现有技术中将深度学习模型转换为设备上可执行模型操作流程,且在转换过程中确定网络层最优实现,在一定程度上提高了深度学习模型转为设备可执行模型的效率。
附图说明
图1是根据本发明实施例的一种模型的转换方法的移动终端硬件结构框图;
图2是根据本发明实施例的模型的转换方法的流程图;
图3是根据本发明实施例的模型的转换方法的整体流程图;
图4是根据本发明实施例的一种可选的模型解析流程图;
图5是根据本发明实施例的一种可选的模型转换流程图;
图6是根据本发明实施例的模型的转换装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种模型的转换方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的模型的转换方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的模型的转换方法,图2是根据本发明实施例的模型的转换方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取待转换的第一模型的第一目标层对应的目标算子参数,其中,所述目标算子参数是根据所述第一目标层的层类型所确定的;
其中,第一模型可以是深度学习框架模型,比如可是caffe、tensorflow、pytorch等,第一目标层可以是深度学习框架模型中的层,比如可以是数据层、卷积层或者是池化层等等,此处对第一目标层的层类型不做限制,目标算子参数可以是与第一目标层对应的算子参数,假设第一目标层是卷积层,则可以确定第一目标层的层类型为卷积类型,此时可以确定第一目标层对应的目标算子参数是卷积算子参数。
步骤S204,基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法,其中,所述目标优先级用于指示每一个实现方法的优先级;
其中,目标算子参数可以是卷积算子参数,池化算子参数或者是其他与深度学习框架层对应的算子参数,目标设备可以是特定品牌的边缘设备,目标实现方法可以是C实现,ARM实现或者是其他可以在目标设备中可以运行卷积算子参数的硬件实现方法等等,目标优先级可以按照预设的优先级,比如可以设置C实现的优先级高于ARM实现,上述的目标设备可以是边缘设备,或者其他类型的设备,假设目标设备是某特定品牌的边缘设备,目标算子参数是卷积算子参数,则可以按照目标优先级确定在该特定品牌的边缘设备中用于运行卷子算子参数的目标实现方法为C实现。
步骤S206,基于所述目标实现方法,以及所述目标算子参数,得到目标模型的第二目标层。
其中,目标模型是可以在目标设备上运行的底层模型,假设目标实现方法是C实现,目标算子参数是卷积算子参数,则可以根据C实现和卷积算子参数,得到目标模型的第二目标层。
可选地,上述步骤的执行主体可以是后台处理器,或者其他的具备类似处理能力的设备,还可以是至少集成数据处理设备的机器,其中,数据处理设备可以包括计算机、手机等终端,但不限于此。
通过上述步骤,通过获取待转换的第一模型的第一目标层对应的目标算子参数,并基于目标算子参数以及预先确定出的目标优先级确定在目标设备中用于运行目标算子参数的目标实现方法,基于目标实现方法和目标算子参数可以得到目标模型的第二目标层,进而通过将第一模型的第一目标层转换为目标模型的第二目标层,实现将第一模型转换为可以运行在目标设备中的目标模型,通过本发明,提供了一种不需要搭建深度学习框架环境,即可将深度学习模型转为在特定设备类型上可执行的目标模型,简化了现有技术中将深度学习模型转换为设备上可执行模型操作流程,且在转换过程中确定网络层最优实现,在一定程度上提高了深度学习模型转为设备可执行模型的效率。
可选地,在基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法之前,还包括:通过以下方式至少之一确定所述目标优先级:第一方式,其中,所述第一方式包括确定预先为所述目标算子参数所配置的对应每一个实现方法的优先级;第二方式,其中,所述第二方式包括确定预先为所述目标设备所配置的对应每一个所述实现方法的优先级;第三方式,其中,所述第三方式包括确定每一个所述实现方法运行所述目标算子参数所分别耗费的时长,基于所述时长确定每一个所述实现方法的优先级。
作为一个可选的实施方式,目标优先级可以通过多种方式确定,比如可以将算子优先级作为第一方式,算子优先级可以是预先为目标算子参数所配置的对应每一个实现方法的优先级,比如目标算子参数为卷积算子参数,可以为卷子算子参数预先配置C实现的优先级高于ARM实现的优先级。
还可以将设备优先级作为第二方式,设备优先级可以是预先为目标设备所配置的对应每一个实现方法的优先级,比如目标设备为特定品牌的边缘设备,可以为特定品牌的边缘设备预先配置C实现的优先级高于ARM实现的优先级。
还可以将耗时优先级作为第三方式,假设目标算子参数对应两个实现,包括C实现和ARM实现,假设目标算子参数是卷积算子参数,则可以确定C实现和ARM实现运行卷子算子参数所分别耗费的时长为3毫秒和2毫秒,则可以基于3毫秒和2毫秒确定实现方法的优先级,比如可以是耗时少的实现方法的优先级最高。
可选地,选择所述第一方式的优先级高于选择所述第二方式的优先级,选择所述第二方式的优先级高于选择所述第三方式的优先级。
作为一个可选的实施方式,假设第一方式是算子优先级,第二方式是设备优先级,第三方式是耗时优先级,在同时存在三种方式中的至少两个方式的情况下,选择算子优先级的优先级高于选择设备优先级的优先级,选择设备优先级的优先级高于选择耗时优先级的优先级。
可选地,基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法包括:基于所述目标算子参数和预设的限制条件,在一个或多个计算方法中确定目标计算方法,其中,所述计算方法包括不同模型对相同层类型对应的算子参数的计算方法;获取用于实现所述目标计算方法的一个或多个第一实现方法;在一个或多个所述第一实现方法中,按照所述目标优先级确定在所述目标设备中用于运行所述目标算子参数的所述目标实现方法。
作为一个可选的实施方式,预设的限制条件可以是输入数据维数,也可以是数据类型等等,此处对预设的限制条件不做限制,假设限制条件是输入数据维数,假设目标算子参数是卷子算子参数,卷积算子参数的输入参数为5维的数据,则预设的限制条件可以是输入参数为5维的数据,假设可以运行卷积算子参数的计算方法有两个,分别是计算方法1和计算方法2,假设计算方法1可以运行输入维数为4维的算子参数数据,计算方法2可以运行输入维数为5维的算子参数数据,则在计算方法1和计算方法2中,确定可以运行输入维数为5维算子参数的计算方法2为目标计算方法。获取用于实现目标计算方法2的一个或多个实现方法,假设用于实现目标计算方法2实现方法有两个,分别是实现方法A和实现方法B,在实现方法A和实现方法B中,按照目标优先级确定在目标设备中用于运行卷积算子参数的目标实现方法,假设目标优先级中实现方法A的优先级高于实现方法B,则可以将实现方法A确定为目标实现方法。
可选地,基于所述目标实现方法,以及所述目标算子参数,得到所述目标模型的所述第二目标层包括:对应保存所述目标实现方法以及所述目标算子参数,得到所述目标模型的所述第二目标层。
作为一个可选的实施方式,假设目标算子参数是卷积算子参数,目标实现方法是C实现,则对应保存C实现以及卷积算子参数,可以得到在目标设备上运行的目标模型的第二目标层。
可选地,获取第一模型的第一目标层对应的目标算子参数,包括:获取所述第一目标层的第一网络结构参数;确定与所述第一目标层的层类型对应的第一算子;将所述第一网络结构参数赋值给所述第一算子,得到所述目标算子参数。
作为一个可选的实施方式,假设第一模型是caffe模型,第一目标层是卷积层,获取卷积层的网络结构参数,网络结构参数可以是网络特征参数、权重参数或者是其他可以表示网络结构的参数,确定与卷积层的层类型对应的第一算子为卷积算子,并将网络结构参数赋值给卷积算子,得到卷积层对应的卷子算子参数。
可选地,在基于所述目标实现方法,以及所述目标算子参数,得到所述目标模型的所述第二目标层之后,所述方法还包括:获取所述第一网络结构参数中包括的参数数据量信息;根据所述参数数据量信息,为所述第二目标层分配存储内存。
作为一个可选的实施方式,假设第一模型是caffe模型,第一目标层是卷积层,获取卷积层的网络结构参数对应的参数数据量信息,参数数据量信息可以是网络结构参数中数据量大小的信息,可以根据参数数据量大小,为可以运行在目标设备上的第二目标层分配存储内存,用于存储每层的参数数据信息。
作为一个可选的实施方式,本发明提供一种多框架模型解析、转换方法,该方法支持多种深度框架,如caffe、onnx等,操作流程简单,不需要先转换为一种框架的中间产物,而是可以直接根据预定设备类型转换为目标模型,自动选择最优实现。
不同的深度学习框架显示网络结构或权重的方式不同,但网络层类型一致,因此,可以将深度学习框架中的层与本发明中的算子相对应。为最大限度的降低转换后模型的精度损失,对于不同深度学习框架中同一类型层做兼容,构造合适的数据类型存放模型解析后的参数信息,根据解析参数满足条件确定对应的计算方法,这里的计算方法为不同框架中相同层的计算方法。且每种计算方法都对应不同的实现,包括但不仅限于c、arm等硬件实现。
本发明为方便根据不同设备类型选择不同的实现方法,在保证转换模型精度的同时,提升性能,针对不同设备类型设置两种优先级。一种是默认优先级,表示每种设备类型的通用优先级;另一种为算子优先级,表示某一算子不同实现之间的优先级。两优先级之间的关系为:单算子优先级高于默认优先级;单算子优先级之间的关系为,当高优先级的方法不满足时,自动调用低优先级方法,保证算子可执行。在根据设备类型选择最优算子实现时,对特定算子设置算子优先级可以保证算子执行时选用哪种计算方法,不根据耗时信息选择最小耗时方法。且当优先级高的实现不满足条件,则调用后续优先级方法,操作流程更灵活。
本发明先根据层类型确定算子类型,再根据参数信息确定计算方法,然后,再根据设备类型确定算子实现,最后,得到转换模型,总体流程如图3所示,分为模型输入、模型解析、模型转换以及得到目标模型四个部分。
作为一个可选的实施方式,模型解析流程图如图4所示,详细介绍如下。首先,根据输入模型后缀名确定输入模型对应的深度学习框架,比如可以是Caffe模型,TensorFlow模型,Onnx模型或者是Pytorch模型等等;其次,解析模型,得到模型的框架层并保存每层参数信息;最后,根据框架层的层类型逐层确定算子,并将参数信息赋值给算子,得到解析后的算子参数列表;需要说明的是,本申请中的计算方法是指不同模型对同一层的类型层确定结果的计算方法。
图5为模型转换过程中根据计算方法、目标设备类型和算子参数等确定最终算子实现方法的流程,其中,A、B、C实现包括但不仅限于C实现、arm实现,或者是其他可以在目标设备上运行算子参数的硬件实现。首先,检验算子参数,根据参数满足的限制条件确定计算方法,这里的计算方法指不同框架对于同一类型层确定结果的计算方法,根据计算方法运行该算子,得到该算子在相同输入规模下不同实现方法的耗时信息,其次,如果该算子有设置算子优先级,且算子参数满足最高优先级,则选用最高优先级对应的实现,否则根据耗时信息选择耗时最小的实现,并记录。
根据模型算子的输入输出规模、权重信息等分配存储内存。通过模型解析、模型转换和分配内存三个步骤,实现对深度学习模型一层的转换。重复执行模型解析、模型转换和分配内存三个步骤,逐层将网络结构、权重信息等按照一定的规则进行保存,得到转换后的目标模型。
作为一个可选的实施方式,人工智能领域的迅速发展,对深度学习模型的泛化性提出了更高的要求,但深度学习框架之间的差异,以及运行不同框架模型需要搭建对应深度学习框架环境所需的人力物力都在一定程度上提高了人工智能领域的实施成本。就运行深度学习模型而言,将不同深度学习框架模型转换为适合不同设备的模型是提升深度学习模型泛化行的有效方法。所以发明针对深度学习框架模型转为指定设备可运行的目标模型提出一种多框架模型解析、转换方法。本发明的技术要点如下:1.提出一种流程简单的多框架模型解析、转换与运行方法,模型转换方面不需要先转换为一种模型框架的中间产物,可以直接转换为目标模型;2.本发明中的方法不需要根据输入深度学习框架模型构建其对应的运行环境,再通过运行实例得到目标转换模型,只需要输入原深度框架模型即可;3.模型解析方面根据层类型确定本方法中的算子,且本案例中的算子兼容多深度学习框架,根据解析参数确定选用哪种计算方法,以此减少模型转换可能造成的精度损失;4.本发明中为每个设备类型设置两个优先级,分别是默认优先级和算子优先级。默认优先级针对整个设备,算子优先级针对每个算子,且算子优先级高于设备优先级。优先级针对的是设备支持的实现方法,包括但不仅限于arm、C等。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种模型的转换装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的模型的转换装置的结构框图,如图6所示,该装置包括:获取模块62,用于获取待转换的第一模型的第一目标层对应的目标算子参数,其中,所述目标算子参数是根据所述第一目标层的层类型所确定的;第一确定模块64,用于基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法,其中,所述目标优先级用于指示每一个所述实现方法的优先级;获得模块66,用于基于所述目标实现方法,以及所述目标算子参数,得到目标模型的第二目标层。
可选地,所述装置还包括,第二确定模块,用于在基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法之前,通过以下方式至少之一确定所述目标优先级:第一方式,其中,所述第一方式包括确定预先为所述目标算子参数所配置的对应每一个实现方法的优先级;第二方式,其中,所述第二方式包括确定预先为所述目标设备所配置的对应每一个所述实现方法的优先级;第三方式,其中,所述第三方式包括确定每一个所述实现方法运行所述目标算子参数所分别耗费的时长,基于所述时长确定每一个所述实现方法的优先级。
可选地,选择所述第一方式的优先级高于选择所述第二方式的优先级,选择所述第二方式的优先级高于选择所述第三方式的优先级。
可选地,所述第一确定模块,还包括:第一确定单元,用于基于所述目标算子参数和预设的限制条件,在一个或多个计算方法中确定目标计算方法,其中,所述计算方法包括不同模型对相同层类型对应的算子参数的计算方法;第一获取单元,用于获取用于实现所述目标计算方法的一个或多个第一实现方法;第二确定单元,用于在一个或多个所述第一实现方法中,按照所述目标优先级确定在所述目标设备中用于运行所述目标算子参数的所述目标实现方法。
可选地,上述获得模块,包括:保存单元,用于对应保存所述目标实现方法以及所述目标算子参数,得到所述目标模型的所述第二目标层。
可选地,上述获取模块还用于通过以下方式实现获取第一模型的第一目标层对应的目标算子参数:获取所述第一目标层的第一网络结构参数;确定与所述第一目标层的层类型对应的第一算子;将所述第一网络结构参数赋值给所述第一算子,得到所述目标算子参数。
可选地,上述装置还用于在基于所述目标实现方法,以及所述目标算子参数,得到所述目标模型的所述第二目标层之后,获取所述第一网络结构参数中包括的参数数据量信息;根据所述参数数据量信息,为所述第二目标层分配存储内存。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取待转换的第一模型的第一目标层对应的目标算子参数,其中,所述目标算子参数是根据所述第一目标层的层类型所确定的;
S2,基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法,其中,所述目标优先级用于指示每一个实现方法的优先级;
S3,基于所述目标实现方法,以及所述目标算子参数,得到目标模型的第二目标层。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取待转换的第一模型的第一目标层对应的目标算子参数,其中,所述目标算子参数是根据所述第一目标层的层类型所确定的;
S2,基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法,其中,所述目标优先级用于指示每一个实现方法的优先级;
S3,基于所述目标实现方法,以及所述目标算子参数,得到目标模型的第二目标层。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种模型的转换方法,其特征在于,包括:
获取待转换的第一模型的第一目标层对应的目标算子参数,其中,所述目标算子参数是根据所述第一目标层的层类型所确定的;
基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法,其中,所述目标优先级用于指示每一个实现方法的优先级;
基于所述目标实现方法,以及所述目标算子参数,得到目标模型的第二目标层。
2.根据权利要求1所述的方法,其特征在于,在基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法之前,还包括:
通过以下方式至少之一确定所述目标优先级:
第一方式,其中,所述第一方式包括确定预先为所述目标算子参数所配置的对应每一个实现方法的优先级;
第二方式,其中,所述第二方式包括确定预先为所述目标设备所配置的对应每一个所述实现方法的优先级;
第三方式,其中,所述第三方式包括确定每一个所述实现方法运行所述目标算子参数所分别耗费的时长,基于所述时长确定每一个所述实现方法的优先级。
3.根据权利要求2所述的方法,其特征在于,选择所述第一方式的优先级高于选择所述第二方式的优先级,选择所述第二方式的优先级高于选择所述第三方式的优先级。
4.根据权利要求1所述的方法,其特征在于,基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法包括:
基于所述目标算子参数和预设的限制条件,在一个或多个计算方法中确定目标计算方法,其中,所述计算方法包括不同模型对相同层类型对应的算子参数的计算方法;
获取用于实现所述目标计算方法的一个或多个第一实现方法;
在一个或多个所述第一实现方法中,按照所述目标优先级确定在所述目标设备中用于运行所述目标算子参数的所述目标实现方法。
5.根据权利要求1所述的方法,其特征在于,基于所述目标实现方法,以及所述目标算子参数,得到所述目标模型的所述第二目标层包括:
对应保存所述目标实现方法以及所述目标算子参数,得到所述目标模型的所述第二目标层。
6.根据权利要求1所述的方法,其特征在于,获取第一模型的第一目标层对应的目标算子参数,包括:
获取所述第一目标层的第一网络结构参数;
确定与所述第一目标层的层类型对应的第一算子;
将所述第一网络结构参数赋值给所述第一算子,得到所述目标算子参数。
7.根据权利要求6所述的方法,其特征在于,在基于所述目标实现方法,以及所述目标算子参数,得到所述目标模型的所述第二目标层之后,所述方法还包括:
获取所述第一网络结构参数中包括的参数数据量信息;
根据所述参数数据量信息,为所述第二目标层分配存储内存。
8.一种模型的转换装置,其特征在于,包括:
获取模块,用于获取待转换的第一模型的第一目标层对应的目标算子参数,其中,所述目标算子参数是根据所述第一目标层的层类型所确定的;
第一确定模块,用于基于所述目标算子参数以及预先确定出的目标优先级,确定在目标设备中用于运行所述目标算子参数的目标实现方法,其中,所述目标优先级用于指示每一个所述实现方法的优先级;
获得模块,用于基于所述目标实现方法,以及所述目标算子参数,得到目标模型的第二目标层。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至7任一项中所述的方法的步骤。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211261281.7A CN115511060A (zh) | 2022-10-14 | 2022-10-14 | 模型的转换方法、装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211261281.7A CN115511060A (zh) | 2022-10-14 | 2022-10-14 | 模型的转换方法、装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115511060A true CN115511060A (zh) | 2022-12-23 |
Family
ID=84510005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211261281.7A Pending CN115511060A (zh) | 2022-10-14 | 2022-10-14 | 模型的转换方法、装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115511060A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116362316A (zh) * | 2023-05-29 | 2023-06-30 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
-
2022
- 2022-10-14 CN CN202211261281.7A patent/CN115511060A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116362316A (zh) * | 2023-05-29 | 2023-06-30 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN116362316B (zh) * | 2023-05-29 | 2023-12-12 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11297601B2 (en) | Resource allocation method and orchestrator for network slicing in the wireless access network | |
CN111552838B (zh) | 数据处理方法及装置、计算机设备、存储介质 | |
CN107766194A (zh) | 测试方法、装置、系统、终端设备及计算机可读存储介质 | |
CN106487553A (zh) | Vnf实例的处理方法、装置及vnfm | |
CN113407157B (zh) | 物模型的确定方法及装置、存储介质、电子装置 | |
CN115511060A (zh) | 模型的转换方法、装置、存储介质及电子装置 | |
CN110569129A (zh) | 资源分配方法及装置、存储介质、电子装置 | |
CN111782317A (zh) | 页面的测试方法和装置、存储介质和电子装置 | |
CN108023905B (zh) | 物联网应用系统及方法 | |
CN115756822A (zh) | 高性能计算应用性能调优的方法及系统 | |
CN110941634A (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN113885971A (zh) | 一种基于自适应平台系统的状态管理方法及装置 | |
CN111831452A (zh) | 任务执行方法、装置、存储介质及电子装置 | |
CN112214701A (zh) | 页面的展示方法及系统、存储介质、电子装置 | |
CN117014389A (zh) | 算网资源配置方法及系统、电子设备、存储介质 | |
CN114564249A (zh) | 推荐调度引擎、推荐调度方法及计算机可读存储介质 | |
CN112698948A (zh) | 产品资源的获取方法及装置、存储介质、电子装置 | |
CN113110982A (zh) | 数据访问层验证方法及装置、存储介质及电子装置 | |
CN111949246A (zh) | 新能源电力行业应用的创建方法及装置 | |
CN112612514B (zh) | 程序开发方法和装置、存储介质及电子装置 | |
CN109669699A (zh) | 应用程序分发方法、ac、ap及无线网络系统 | |
CN113434612B (zh) | 数据统计方法及装置、存储介质及电子装置 | |
CN111352811B (zh) | 一种用户行为数据采集方法、装置、设备及介质 | |
CN113900734A (zh) | 一种应用程序文件配置方法、装置、设备及存储介质 | |
CN116962212A (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 |