CN116362316B - 一种模型转换方法、装置、存储介质及电子设备 - Google Patents
一种模型转换方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116362316B CN116362316B CN202310609780.9A CN202310609780A CN116362316B CN 116362316 B CN116362316 B CN 116362316B CN 202310609780 A CN202310609780 A CN 202310609780A CN 116362316 B CN116362316 B CN 116362316B
- Authority
- CN
- China
- Prior art keywords
- model
- operator information
- operator
- information
- source
- 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
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims abstract description 69
- 230000015654 memory Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012549 training Methods 0.000 claims description 6
- 238000013139 quantization Methods 0.000 claims description 5
- 238000005457 optimization Methods 0.000 claims description 4
- 230000001502 supplementing effect Effects 0.000 claims description 3
- 238000011426 transformation method Methods 0.000 claims description 2
- 230000009466 transformation Effects 0.000 claims 1
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000006872 improvement Effects 0.000 abstract description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Stored Programmes (AREA)
Abstract
本申请的实施例公开了一种模型转换方法、装置、存储介质及电子设备,涉及人工智能技术领域,包括:解析源模型,获得源模型的算子信息;根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息;将重构算子信息在算子库中进行匹配,获得匹配结果;根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型。本申请的方法通过解析源模型获得其算子信息,然后将其进行重构,在底层实现了目标模型不支持的算子,提升转换成功率,由于重构算子信息在转换后让仍然为一个算子,相比起现有的将一个算子转换为三个算子的方式,能够大幅提升运行效率,进而实现对模型转换质量的提升。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及一种模型转换方法、装置、存储介质及电子设备。
背景技术
随着AI的快速发展,许多厂商都推出了AI框架,但是各个框架的模型和接口各不一样,AI模型转换平台可以方便地进行模型转换,使各个框架的资源能够共享,更加快速地开发出产品。但当前的转换平台都是基于命令行的,一般仅支持其他框架转换为某一特定框架,能转换的框架类别较少,并且命令行的转换方式,环境配置繁琐,使用方式复杂,导致了转换的成功率与效率都偏低,转换质量较差。
发明内容
本申请的主要目的在于提供一种模型转换方法、装置、存储介质及电子设备,旨在解决现有技术中在对AI模型进行转换时的转换质量较差的问题。
为实现上述目的,本申请的实施例采用的技术方案如下:
第一方面,本申请实施例提供一种模型转换方法,包括以下步骤:
解析源模型,获得源模型的算子信息;
根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息;
将重构算子信息在算子库中进行匹配,获得匹配结果;其中,算子库中包含有若干模型的算子信息;
根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型;匹配结果为匹配,根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型,包括:
根据匹配结果与重构算子信息,利用中间模型框架对源模型进行转换,获得中间模型;
调用目标模型的标准接口对中间模型进行转换,获得目标模型。
在第一方面的一种可能实现方式中,根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息,包括:
根据目标模型的算子信息与源模型的算子信息的算子差异信息,对源模型的算子信息进行拆分,获得重构算子信息。
在第一方面的一种可能实现方式中,根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息,包括:
根据目标模型的算子信息与源模型的算子信息的算子类别差异信息,对源模型的算子信息进行合并或补充,获得重构算子信息。
在第一方面的一种可能实现方式中,匹配结果为不匹配,根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型,包括:
根据匹配结果与重构算子信息,调用目标模型的标准接口对源模型进行转换,获得目标模型。
在第一方面的一种可能实现方式中,若根据匹配结果与重构算子信息,利用中间模型框架对源模型进行转换,获得中间模型的步骤失败,或,调用目标模型的标准接口对中间模型进行转换,获得目标模型的步骤失败;则根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型,包括:
根据匹配结果与重构算子信息,调用目标模型的标准接口对源模型进行转换,获得目标模型。
在第一方面的一种可能实现方式中,解析源模型,获得源模型的算子信息之后,模型转换方法还包括:
对源模型的算子信息进行拓扑排列,获得第一算子信息;
根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息,包括:
根据目标模型的算子信息与第一算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息。
第二方面,本申请实施例提供一种模型转换装置,包括:
解析模块,解析模块用于解析源模型,获得源模型的算子信息;
重构模块,重构模块用于根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息;
匹配模块,匹配模块用于将重构算子信息在算子库中进行匹配,获得匹配结果;其中,算子库中包含有若干模型的算子信息;
转换模块,转换模块用于根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型;匹配结果为匹配,根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型,包括:
根据匹配结果与重构算子信息,利用中间模型框架对源模型进行转换,获得中间模型;
调用目标模型的标准接口对中间模型进行转换,获得目标模型。
第三方面,本申请实施例提供一种计算机可读存储介质,储存有计算机程序,计算机程序被处理器加载执行时,实现如上述第一方面中任一项提供的模型转换方法。
第四方面,本申请实施例提供一种电子设备,包括处理器及存储器,其中,
存储器用于存储计算机程序;
处理器用于加载执行计算机程序,以使电子设备执行如上述第一方面中任一项提供的模型转换方法。
与现有技术相比,本申请的有益效果是:
本申请实施例提出的一种模型转换方法、装置、存储介质及电子设备,该方法包括:解析源模型,获得源模型的算子信息;根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息;将重构算子信息在算子库中进行匹配,获得匹配结果;其中,算子库中包含有若干模型的算子信息;根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型。本申请的方法通过解析源模型获得其算子信息,然后将其与目标模型的算子信息进行比对,并根据差异信息对原有的算子信息进行重构,在底层实现了目标模型不支持的算子,提升了转换成功率,进而让重构的算子信息在算子库中进行匹配,根据匹配的结果,利用重构算子信息对源模型进行转换获得目标模型,由于重构算子信息在转换后仍然为一个算子,相比起现有的将一个算子转换为三个算子的方式,能够大幅提升运行效率,进而实现对模型转换质量的提升。
附图说明
图1为本申请实施例涉及的硬件运行环境的电子设备结构示意图;
图2为本申请实施例提供的模型转换方法的流程示意图;
图3为本申请实施例提供的模型转换方法在一种实施方式下的逻辑图;
图4为本申请实施例提供的可视化的模型转换交互界面的示意图;
图5为本申请实施例提供的可视化的模型转换交互界面中对参数进行自动补充的示意图;
图6为本申请实施例提供的可视化的模型转换交互界面在一种实施方式下的示意图;
图7为本申请实施例提供的模型转换装置的模块示意图;
图中标记:101-处理器,102-通信总线,103-网络接口,104-用户接口,105-存储器。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:提出一种模型转换方法、装置、存储介质及电子设备,该方法包括:解析源模型,获得源模型的算子信息;根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息;将重构算子信息在算子库中进行匹配,获得匹配结果;根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型。
随着AI的快速发展,许多厂商都推出了AI框架,但是各个框架的模型和接口各不一样,AI模型转换平台可以方便地进行模型转换,使各个框架的资源能够共享,更加快速地开发出产品。当前的转换平台都是基于命令行的,一般支持其他框架转换为某一特定框架,转换的框架类别较少。
命令行的转换方式,环境配置繁琐,使用方式复杂。例如高通snpe框架,需要事先配置原框架环境,如果有特殊算子,还需要补充后重新编译、安装原框架,还需要配置android ndk环境,设置系统变量;在使用方式方面,需要使用多个命令行,并且每个命令行需要附加多个参数,如snpe-dlc-quantize含32个参数。并且由于模型数据存储的方式不一样,现有技术中的转换方法,将一个算子转换为三个算子,也即先转换为新构架格式,然后调用新构架算子,最后再转换回原架构,这样一来就大大增加了运行时间。
为此,本申请提供一种解决方案,通过解析源模型获得其算子信息,然后将其与目标模型的算子信息进行比对,并根据差异信息对原有的算子信息进行重构,在底层实现了目标模型不支持的算子,提升了转换成功率,进而让重构的算子信息在算子库中进行匹配,根据匹配的结果,利用重构算子信息对源模型进行转换获得目标模型,由于重构算子信息在转换后仍然为一个算子,相比起现有的将一个算子转换为三个算子的方式,能够大幅提升运行效率,进而实现对模型转换质量的提升。
参照附图1,附图1为本申请实施例方案涉及的硬件运行环境的电子设备结构示意图,该电子设备可以包括:处理器101,例如中央处理器(Central Processing Unit,CPU),通信总线102、用户接口104,网络接口103,存储器105。其中,通信总线102用于实现这些组件之间的连接通信。用户接口104可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口104还可以包括标准的有线接口、无线接口。网络接口103可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器105可选的可以是独立于前述处理器101的存储装置,存储器105可能是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可能是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器;处理器101可以是通用处理器,包括中央处理器、网络处理器等,还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本领域技术人员可以理解,附图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如附图1所示,作为一种存储介质的存储器105中可以包括操作系统、网络通信模块、用户接口模块以及模型转换装置。
在附图1所示的电子设备中,网络接口103主要用于与网络服务器进行数据通信;用户接口104主要用于与用户进行数据交互;本申请中的处理器101、存储器105可以设置在电子设备中,电子设备通过处理器101调用存储器105中存储的模型转换装置,并执行本申请实施例提供的模型转换方法。
参照附图2,基于前述实施例的硬件设备,本申请的实施例提供一种模型转换方法,包括以下步骤:
S10:解析源模型,获得源模型的算子信息。
在具体实施过程中,源模型,即需要被转换为其他模型的初始模型;算子信息,为建立模型所采用算法的计算单元,模型通过算法建立,而算法由一个个计算单元组成,这些计算单元则被称为算子,例如在网络模型中,算子对应层中的计算逻辑,卷积层(Convolution Layer)是一个算子;全连接层(Fully-connected Layer, FC layer)中的权值求和过程,是一个算子;以及tanh等被用作激活函数的算子。
解析源模型,获得源模型的算子信息之后,模型转换方法还包括:
对源模型的算子信息进行拓扑排列,获得第一算子信息。
在具体实施过程中,由于模型还可能存在有算子序列的差异,比如即便两个模型具有相同的算子,但是算子序列不相同,也不能认为其可以直接转换。同一模型中算子具有优先级之分,也就是先后关系,因此对算子信息采用契合的拓扑排列,并联分支按照算子数量与算子优先级进行排列,能够更准确直观地掌握算子之间的结构以及算子之间的逻辑关系。进而在拆分算子时就能够将算子序列与算子库中的算子序列信息进行对比,如果是一致的,则读出算子序列中相应位置的数据属性放到合并算子中,并替换算子序列。
根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息,包括:
根据目标模型的算子信息与第一算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息。
S20:根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息。
在具体实施过程中,目标模型,为源模型需要被转换成的模型,比如需要将A模型转换为B模型,那么源模型为A,目标模型就为B,不同的模型所包含的算子不尽相同,这些不同的地方导致各个模型互相转换存在着障碍,这也就是本申请为什么要在模型转换过程中考虑算子的差异。由于是在两个模型之间获得算子之间的差异,因此算子的差异信息可包括多种情况,比如算子本身的差异,即在底层实现上区别很小的一些算子,或者是算子的类别上有差异,比如源模型与目标模型中,任一模型具有而另一模型不具有的算子。
由于各个模型数据存储的方式不一样,比如onnx的存储方式是NCHW,而tflite的存储方式是NHWC,官方的转换方式即利用目标模型上自带的标准API接口,会在每个算子运行前将数据转换成tflite对应的格式,即将[1,64,122,122]的4维数据转换成[1,122,122,64],运算完后再转换回来。本申请通过底层解析后直接使用tflite格式来重构模型,可以清除模型中大量的冗余算子,使一个算子转换之后仍为一个算子,能增加至少30%的运行效率。
一方面,根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息,包括:
根据目标模型的算子信息与源模型的算子信息的算子差异信息,对源模型的算子信息进行拆分,获得重构算子信息。
在具体实施过程中,比如Caffe和tflite模型的卷积算子底层实现有略微差异,该差异的存在则被视为算子满足拆分的条件,转换之后的模型相比于源模型精度会有所下降,通过拆分算子来弥补差异,实现转换后的运算细节等同于转换前,达到精度保持不变的目的。
另一方面,根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息,包括:
根据目标模型的算子信息与源模型的算子信息的算子类别差异信息,对源模型的算子信息进行合并或补充,获得重构算子信息。
在具体实施过程中,算子类别差异也就是模型之间具有的算子类别的不同,可以分为两种情况,其一,针对目标模型有但源模型没有的算子,比如Caffe模型没有layernorm算子,onnx、qnn等模型含有这些算子,则将多个算子进行合并整合成一个算子,以使模型结构简洁、易读,还能借助目标模型的标准接口提升模型推理的运行速度;其二,针对源模型有但目标模型没有的算子,比如onnx模型有hardsigmoid算子但是dlc模型没有,直接转换会失败,利用udo(user-defined operation,用户自定义算子 )通过目标模型官方提供的接口,增加算子实现,即手动将算子的运行逻辑用c++重写来达到目标框架对算子的支持,实现模型转换率的提升。
S30:将重构算子信息在算子库中进行匹配,获得匹配结果;其中,算子库中包含有若干模型的算子信息。
在具体实施过程中,重构了算子信息,相当于已经预先获得了目标模型所包含的算子信息,那么建立模型对应的算法就已经知晓,而针对一些常见的模型的算法可以建立算子库,也称作算子序列库,其中可以存储有模型的算子信息以及算子序列信息,将重构算子信息在其中匹配,获得匹配结果,也就是匹配以获取目标模型是否能够直接调用其标准接口进行转换。由于算子序列的符合是基本条件,本申请中的重构主要针对算子类别上的不同进行,也就是说,解析源模型获得的算子信息实则是包含了算子序列信息的。
S40:根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型。
在具体实施过程中,匹配结果包括了两种,匹配与不匹配,在不匹配的情况下,则直接调用目标模型的标准接口将算子组成新的模型结构,获得目标模型。而如果目标模型不存在源模型算子或者目标模型不开源,则使用算子较多的中间模型框架将其转换为中间模型,然后再调用目标模型的官方转换命令行进行中间模型到目标模型的转换。该种手段也同样适用于匹配成功的情况,作为对获取目标模型的优化过程,即:匹配结果为匹配,根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型,包括:
根据匹配结果与重构算子信息,利用中间模型框架对源模型进行转换,获得中间模型;
调用目标模型的标准接口对中间模型进行转换,获得目标模型。
上述匹配过程、转换过程以及对算子的重构过程中,如果过程有不支持的,均可以采用调用官方转换的过程,也即:
若根据匹配结果与重构算子信息,利用中间模型框架对源模型进行转换,获得中间模型的步骤失败,或,调用目标模型的标准接口对中间模型进行转换,获得目标模型的步骤失败;则根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型,包括:
根据匹配结果与重构算子信息,调用目标模型的标准接口对源模型进行转换,获得目标模型。
匹配结果为不匹配,根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型,包括:
根据匹配结果与重构算子信息,调用目标模型的标准接口对源模型进行转换,获得目标模型。
本实施例中,通过解析源模型获得其算子信息,然后将其与目标模型的算子信息进行比对,并根据差异信息对原有的算子信息进行重构,在底层实现了目标模型不支持的算子,提升了转换成功率,进而让重构的算子信息在算子库中进行匹配,根据匹配的结果,利用重构算子信息对源模型进行转换获得目标模型,由于重构算子信息在转换后仍然为一个算子,相比起现有的将一个算子转换为三个算子的方式,能够大幅提升运行效率,进而实现对模型转换质量的提升。
参照附图3,对本申请实施例提供的模型转换方法作进一步说明:
首先,对源模型进行解析获得源模型的算子信息;
然后,对算子信息进行拓扑排列并进行重构获得重构算子信息,Node中文释义为节点,本申请中按照算子作为节点排序,则本申请中Node代表算子,Tensor为模型中每一个层的信息;
最后,与Node库也即算子库匹配,在匹配成功的情况下对其进行优化,先转换为中间模型,再以中间模型通过官方转换来获得目标模型;如果匹配不成功或者则尝试用官方转换,也即模型自带的官方接口直接进行转换;如果官方转换依然失败,则反馈错误信息。
参照附图4-附图6,基于与前述实施例中同样的发明构思,本申请实施例还提供一种可视化的模型转换交互界面,包括第一显示区域与第二显示区域,第一显示区域用于接收用户的输入操作指令,获得源模型信息;第二显示区域用于接收用户的输出操作指令,获得目标模型信息。在具体应用中:
首先,如附图4所示,用户在第一显示区域选择输入模型格式,点击右侧的下拉菜单可以有更多的选项,并且用户也可以采用点击上传的标识,上传源模型,后台即可自动识别源模型信息。
其次,如附图4所示,用户在第二显示区域选择输出模型格式,也就是目标模型格式,同理,点击右侧下拉菜单可以有更多选择。
然后,如附图5所示,用户可在界面上对优化方式进行自主的选择,后台根据用户上传的前述信息,对量化辅助数据集、训练均值、训练方差、输入节点以及input shape等参数进行自动填充。
最后,确定各项参数完毕开始转换,后台执行本申请的转换方法完成对源模型到目标模型的转换。
此外,如附图6所示,在转换交互界面上,还包括有第三显示区域,第三显示区域用于实时显示转换处理的进度,比如转换到达什么节点,转换处理中各节点的时间记录,也即生成处理日志进行显示,极大降低了用户的使用难度。
参照附图7,基于与前述实施例中同样的发明构思,本申请实施例还提供一种模型转换装置,该装置包括:
解析模块,解析模块用于解析源模型,获得源模型的算子信息;
重构模块,重构模块用于根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息;
匹配模块,匹配模块用于将重构算子信息在算子库中进行匹配,获得匹配结果;其中,算子库中包含有若干模型的算子信息;
转换模块,转换模块用于根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型。
本领域技术人员应当理解,实施例中的各个模块的划分仅仅是一种逻辑功能的划分,实际应用时可以全部或部分集成到一个或多个实际载体上,且这些模块可以全部以软件通过处理单元调用的形式实现,也可以全部以硬件的形式实现,或是以软件、硬件结合的形式实现,需要说明的是,本实施例中模型转换装置中各模块是与前述实施例中的模型转换方法中的各步骤一一对应,因此,本实施例的具体实施方式可参照前述模型转换方法的实施方式,这里不再赘述。
基于与前述实施例中同样的发明构思,本申请的实施例还提供一种计算机可读存储介质,储存有计算机程序,计算机程序被处理器加载执行时,实现如本申请实施例提供的模型转换方法。
基于与前述实施例中同样的发明构思,本申请的实施例还提供一种电子设备,包括处理器及存储器,其中,
存储器用于存储计算机程序;
处理器用于加载执行计算机程序,以使电子设备执行如本申请实施例提供的模型转换方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的 技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光 盘)中,包括若干指令用以使得一台多媒体终端设备(可以是手机,计算机,电视接收机,或者网络设备等)执行本申请各个实施例所述的方法。
综上,本申请提供的一种模型转换方法、装置、存储介质及电子设备,包括:解析源模型,获得源模型的算子信息;根据目标模型的算子信息与源模型的算子信息的差异信息,对源模型的算子信息进行重构,获得重构算子信息;将重构算子信息在算子库中进行匹配,获得匹配结果;其中,算子库中包含有若干模型的算子信息;根据匹配结果与重构算子信息,对源模型进行转换,获得目标模型。本申请的方法通过解析源模型获得其算子信息,然后将其与目标模型的算子信息进行比对,并根据差异信息对原有的算子信息进行重构,在底层实现了目标模型不支持的算子,提升了转换成功率,进而让重构的算子信息在算子库中进行匹配,根据匹配的结果,利用重构算子信息对源模型进行转换获得目标模型,由于重构算子信息在转换后仍然为一个算子,相比起现有的将一个算子转换为三个算子的方式,能够大幅提升运行效率,进而实现对模型转换质量的提升。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种模型转换方法,其特征在于,包括以下步骤:
解析源模型,获得所述源模型的算子信息;
根据目标模型的算子信息与所述源模型的算子信息的差异信息,对所述源模型的算子信息进行重构,获得重构算子信息;
将所述重构算子信息在算子库中进行匹配,获得匹配结果;其中,所述算子库中包含有若干模型的算子信息;
根据所述匹配结果与所述重构算子信息,对所述源模型进行转换,获得所述目标模型;所述匹配结果为匹配,所述根据所述匹配结果与所述重构算子信息,对所述源模型进行转换,获得所述目标模型,包括:
根据所述匹配结果与所述重构算子信息,利用中间模型框架对所述源模型进行转换,获得中间模型;
调用所述目标模型的标准接口对所述中间模型进行转换,获得所述目标模型;
根据模型的优化方式,获得参数信息;其中,所述参数信息包括量化辅助数据集、训练均值、训练方差、输入节点以及input shape,所述量化辅助数据集包括:coco、face以及imagenet。
2.根据权利要求1所述的模型转换方法,其特征在于,所述根据目标模型的算子信息与所述源模型的算子信息的差异信息,对所述源模型的算子信息进行重构,获得重构算子信息,包括:
根据目标模型的算子信息与所述源模型的算子信息的算子差异信息,对所述源模型的算子信息进行拆分,获得重构算子信息。
3.根据权利要求1所述的模型转换方法,其特征在于,所述根据目标模型的算子信息与所述源模型的算子信息的差异信息,对所述源模型的算子信息进行重构,获得重构算子信息,包括:
根据目标模型的算子信息与所述源模型的算子信息的算子类别差异信息,对所述源模型的算子信息进行合并或补充,获得重构算子信息。
4.根据权利要求1所述的模型转换方法,其特征在于,所述匹配结果为不匹配,所述根据所述匹配结果与所述重构算子信息,对所述源模型进行转换,获得所述目标模型,包括:
根据所述匹配结果与所述重构算子信息,调用所述目标模型的标准接口对所述源模型进行转换,获得所述目标模型。
5.根据权利要求1所述的模型转换方法,其特征在于,所述匹配结果为匹配,所述根据所述匹配结果与所述重构算子信息,对所述源模型进行转换,获得所述目标模型,包括:
根据所述匹配结果与所述重构算子信息,利用中间模型框架对所述源模型进行转换,获得中间模型;
调用所述目标模型的标准接口对所述中间模型进行转换,获得所述目标模型。
6.根据权利要求5所述的模型转换方法,其特征在于,若所述根据所述匹配结果与所述重构算子信息,利用中间模型框架对所述源模型进行转换,获得中间模型的步骤失败,或,所述调用所述目标模型的标准接口对所述中间模型进行转换,获得所述目标模型的步骤失败;则所述根据所述匹配结果与所述重构算子信息,对所述源模型进行转换,获得所述目标模型,包括:
所述根据所述匹配结果与所述重构算子信息,调用所述目标模型的标准接口对所述源模型进行转换,获得所述目标模型。
7.根据权利要求1所述的模型转换方法,其特征在于,所述解析源模型,获得所述源模型的算子信息之后,所述模型转换方法还包括:
对所述源模型的算子信息进行拓扑排列,获得第一算子信息;
所述根据目标模型的算子信息与所述源模型的算子信息的差异信息,对所述源模型的算子信息进行重构,获得重构算子信息,包括:
根据目标模型的算子信息与所述第一算子信息的差异信息,对所述源模型的算子信息进行重构,获得重构算子信息。
8.一种模型转换装置,其特征在于,包括:
解析模块,所述解析模块用于解析源模型,获得所述源模型的算子信息;重构模块,所述重构模块用于根据目标模型的算子信息与所述源模型的算子信息的差异信息,对所述源模型的算子信息进行重构,获得重构算子信息;
匹配模块,所述匹配模块用于将所述重构算子信息在算子库中进行匹配,获得匹配结果;其中,所述算子库中包含有若干模型的算子信息;
转换模块,所述转换模块用于根据所述匹配结果与所述重构算子信息,对所述源模型进行转换,获得所述目标模型;所述匹配结果为匹配,所述根据所述匹配结果与所述重构算子信息,对所述源模型进行转换,获得所述目标模型,包括:
根据所述匹配结果与所述重构算子信息,利用中间模型框架对所述源模型进行转换,获得中间模型;
调用所述目标模型的标准接口对所述中间模型进行转换,获得所述目标模型;
根据模型的优化方式,获得参数信息;其中,所述参数信息包括量化辅助数据集、训练均值、训练方差、输入节点以及input shape,所述量化辅助数据集包括:coco、face以及imagenet。
9.一种计算机可读存储介质,储存有计算机程序,其特征在于,所述计算机程序被处理器加载执行时,实现如权利要求1-7中任一项所述的模型转换方法。
10.一种电子设备,其特征在于,包括处理器及存储器,其中,
所述存储器用于存储计算机程序;
所述处理器用于加载执行所述计算机程序,以使所述电子设备执行如权利要求1-7中任一项所述的模型转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310609780.9A CN116362316B (zh) | 2023-05-29 | 2023-05-29 | 一种模型转换方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310609780.9A CN116362316B (zh) | 2023-05-29 | 2023-05-29 | 一种模型转换方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116362316A CN116362316A (zh) | 2023-06-30 |
CN116362316B true CN116362316B (zh) | 2023-12-12 |
Family
ID=86941894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310609780.9A Active CN116362316B (zh) | 2023-05-29 | 2023-05-29 | 一种模型转换方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116362316B (zh) |
Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013008702A1 (ja) * | 2011-07-08 | 2013-01-17 | 株式会社 日立メディコ | 画像再構成装置及び画像再構成方法 |
CN104950233A (zh) * | 2015-06-18 | 2015-09-30 | 国家电网公司 | 基于场源逆问题反演的开关柜局部放电源定位与重构方法 |
CN105843223A (zh) * | 2016-03-23 | 2016-08-10 | 东南大学 | 一种基于空间词袋模型的移动机器人三维建图与避障方法 |
CN107507135A (zh) * | 2017-07-11 | 2017-12-22 | 天津大学 | 基于编码光圈和靶标的图像重构方法 |
CN110174659A (zh) * | 2019-05-08 | 2019-08-27 | 南京信息工程大学 | 基于迭代近端投影的mimo雷达多测量矢量doa估计方法 |
CN110532341A (zh) * | 2019-09-03 | 2019-12-03 | 华东师范大学 | 空间信息时空大数据约束表达方法 |
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
CN110659728A (zh) * | 2019-09-24 | 2020-01-07 | 上海寒武纪信息科技有限公司 | 神经网络优化方法、装置、计算机设备及存储介质 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN110689115A (zh) * | 2019-09-24 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 神经网络模型处理方法、装置、计算机设备及存储介质 |
CN110826708A (zh) * | 2019-09-24 | 2020-02-21 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
EP3712784A2 (en) * | 2019-03-20 | 2020-09-23 | Tata Consultancy Services Limited | System and method for signal pre-processing based on data driven models and data dependent model transformation |
CN111783952A (zh) * | 2020-06-30 | 2020-10-16 | 北京百度网讯科技有限公司 | 配置方法、装置、系统、电子设备以及存储介质 |
US10819881B1 (en) * | 2015-03-12 | 2020-10-27 | Igor Vladimir Smolyar | System and method for encryption/decryption of 2-D and 3-D arbitrary images |
CN112069456A (zh) * | 2020-09-21 | 2020-12-11 | 北京明略昭辉科技有限公司 | 一种模型文件的生成方法、装置、电子设备及存储介质 |
CN112381220A (zh) * | 2020-12-08 | 2021-02-19 | 厦门壹普智慧科技有限公司 | 一种神经网络张量处理器 |
CN112506523A (zh) * | 2020-12-21 | 2021-03-16 | 上海携旅信息技术有限公司 | Bert模型的优化方法及系统、电子设备及存储介质 |
CN112580792A (zh) * | 2020-12-08 | 2021-03-30 | 厦门壹普智慧科技有限公司 | 一种神经网络多核张量处理器 |
WO2021057746A1 (zh) * | 2019-09-24 | 2021-04-01 | 安徽寒武纪信息科技有限公司 | 神经网络处理方法、装置、计算机设备及存储介质 |
CN113065665A (zh) * | 2021-03-04 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种模型算子对比方法、系统及存储介质 |
CN113642730A (zh) * | 2021-08-30 | 2021-11-12 | Oppo广东移动通信有限公司 | 卷积网络剪枝方法和装置、电子设备 |
CN113947181A (zh) * | 2021-09-22 | 2022-01-18 | 之江实验室 | 一种神经网络加速器模型转换方法及装置 |
CN114356336A (zh) * | 2021-11-24 | 2022-04-15 | 北京市商汤科技开发有限公司 | 神经网络模型部署方法及装置、电子设备和存储介质 |
CN114611714A (zh) * | 2022-05-11 | 2022-06-10 | 成都数之联科技股份有限公司 | 模型处理方法、装置、系统、电子设备及存储介质 |
CN115115048A (zh) * | 2022-06-23 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 模型转换方法、装置、计算机设备及存储介质 |
CN115438768A (zh) * | 2021-06-02 | 2022-12-06 | 上海寒武纪信息科技有限公司 | 模型推理方法、装置、计算机设备及存储介质 |
CN115511060A (zh) * | 2022-10-14 | 2022-12-23 | 浙江大华技术股份有限公司 | 模型的转换方法、装置、存储介质及电子装置 |
CN115659281A (zh) * | 2022-11-16 | 2023-01-31 | 之江实验室 | 一种自适应加速算子融合的方法及装置 |
CN115860143A (zh) * | 2022-12-28 | 2023-03-28 | 浙江大华技术股份有限公司 | 算子模型生成方法、装置和设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8204325B2 (en) * | 2008-01-18 | 2012-06-19 | Sharp Laboratories Of America, Inc. | Systems and methods for texture synthesis for video coding with side information |
IL203628A (en) * | 2010-01-31 | 2015-09-24 | Verint Systems Ltd | Systems and methods for decoding network traffic |
US10871535B2 (en) * | 2017-09-28 | 2020-12-22 | Siemens Healthcare Gmbh | Magnetic resonance fingerprinting optimization in magnetic resonance imaging |
US10973489B2 (en) * | 2017-09-29 | 2021-04-13 | General Electric Company | CT imaging system and method using a task-based image quality metric to achieve a desired image quality |
-
2023
- 2023-05-29 CN CN202310609780.9A patent/CN116362316B/zh active Active
Patent Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013008702A1 (ja) * | 2011-07-08 | 2013-01-17 | 株式会社 日立メディコ | 画像再構成装置及び画像再構成方法 |
US10819881B1 (en) * | 2015-03-12 | 2020-10-27 | Igor Vladimir Smolyar | System and method for encryption/decryption of 2-D and 3-D arbitrary images |
CN104950233A (zh) * | 2015-06-18 | 2015-09-30 | 国家电网公司 | 基于场源逆问题反演的开关柜局部放电源定位与重构方法 |
CN105843223A (zh) * | 2016-03-23 | 2016-08-10 | 东南大学 | 一种基于空间词袋模型的移动机器人三维建图与避障方法 |
CN107507135A (zh) * | 2017-07-11 | 2017-12-22 | 天津大学 | 基于编码光圈和靶标的图像重构方法 |
EP3712784A2 (en) * | 2019-03-20 | 2020-09-23 | Tata Consultancy Services Limited | System and method for signal pre-processing based on data driven models and data dependent model transformation |
CN110174659A (zh) * | 2019-05-08 | 2019-08-27 | 南京信息工程大学 | 基于迭代近端投影的mimo雷达多测量矢量doa估计方法 |
CN110532341A (zh) * | 2019-09-03 | 2019-12-03 | 华东师范大学 | 空间信息时空大数据约束表达方法 |
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
CN110689115A (zh) * | 2019-09-24 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 神经网络模型处理方法、装置、计算机设备及存储介质 |
CN110826708A (zh) * | 2019-09-24 | 2020-02-21 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN110659728A (zh) * | 2019-09-24 | 2020-01-07 | 上海寒武纪信息科技有限公司 | 神经网络优化方法、装置、计算机设备及存储介质 |
WO2021057746A1 (zh) * | 2019-09-24 | 2021-04-01 | 安徽寒武纪信息科技有限公司 | 神经网络处理方法、装置、计算机设备及存储介质 |
CN111783952A (zh) * | 2020-06-30 | 2020-10-16 | 北京百度网讯科技有限公司 | 配置方法、装置、系统、电子设备以及存储介质 |
CN112069456A (zh) * | 2020-09-21 | 2020-12-11 | 北京明略昭辉科技有限公司 | 一种模型文件的生成方法、装置、电子设备及存储介质 |
CN112580792A (zh) * | 2020-12-08 | 2021-03-30 | 厦门壹普智慧科技有限公司 | 一种神经网络多核张量处理器 |
CN112381220A (zh) * | 2020-12-08 | 2021-02-19 | 厦门壹普智慧科技有限公司 | 一种神经网络张量处理器 |
CN112506523A (zh) * | 2020-12-21 | 2021-03-16 | 上海携旅信息技术有限公司 | Bert模型的优化方法及系统、电子设备及存储介质 |
CN113065665A (zh) * | 2021-03-04 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种模型算子对比方法、系统及存储介质 |
CN115438768A (zh) * | 2021-06-02 | 2022-12-06 | 上海寒武纪信息科技有限公司 | 模型推理方法、装置、计算机设备及存储介质 |
CN113642730A (zh) * | 2021-08-30 | 2021-11-12 | Oppo广东移动通信有限公司 | 卷积网络剪枝方法和装置、电子设备 |
CN113947181A (zh) * | 2021-09-22 | 2022-01-18 | 之江实验室 | 一种神经网络加速器模型转换方法及装置 |
CN114356336A (zh) * | 2021-11-24 | 2022-04-15 | 北京市商汤科技开发有限公司 | 神经网络模型部署方法及装置、电子设备和存储介质 |
CN114611714A (zh) * | 2022-05-11 | 2022-06-10 | 成都数之联科技股份有限公司 | 模型处理方法、装置、系统、电子设备及存储介质 |
CN115115048A (zh) * | 2022-06-23 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 模型转换方法、装置、计算机设备及存储介质 |
CN115511060A (zh) * | 2022-10-14 | 2022-12-23 | 浙江大华技术股份有限公司 | 模型的转换方法、装置、存储介质及电子装置 |
CN115659281A (zh) * | 2022-11-16 | 2023-01-31 | 之江实验室 | 一种自适应加速算子融合的方法及装置 |
CN115860143A (zh) * | 2022-12-28 | 2023-03-28 | 浙江大华技术股份有限公司 | 算子模型生成方法、装置和设备 |
Non-Patent Citations (2)
Title |
---|
Enhancing the interoperability between deep learning frameworks by model conversion;Liu Y等;《Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering》;1320-1330 * |
基于反卷积神经网络的图像融合算法研究;王强军;《中国优秀硕士学位论文全文数据库 信息科技辑》(第2期);I138-1358 * |
Also Published As
Publication number | Publication date |
---|---|
CN116362316A (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7992127B2 (en) | Method and system of encapsulating web site transactions for computer-aided generation of web services | |
CN117008923B (zh) | 基于ai大模型的代码生成和编译部署方法、平台和设备 | |
US20220284286A1 (en) | Method and apparatus for providing recommendations for completion of an engineering project | |
CN110780856B (zh) | 一种基于微服务的用电数据发布平台 | |
EP3279816A1 (en) | Data analysis processing method, apparatus, computer device, and storage medium | |
CN112214210A (zh) | 后勤业务规则引擎及其配置方法、装置、设备和存储介质 | |
CN109902251A (zh) | 基于决策树的方案选择方法、装置、终端及可读存储介质 | |
CN112650487A (zh) | 混合应用程序开发方法、系统、计算机设备和存储介质 | |
CN113204495A (zh) | 基于b/s架构的自动化测试方法、装置、存储介质及设备 | |
CN113364515A (zh) | 基于Xstate的卫星遥控方法、装置、设备和存储介质 | |
CN110109684B (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
CN116362316B (zh) | 一种模型转换方法、装置、存储介质及电子设备 | |
CN110377769B (zh) | 基于图数据结构的建模平台系统、方法、服务器及介质 | |
CN116266117A (zh) | 模型转换方法、计算机程序产品、存储介质及电子设备 | |
CN116185425A (zh) | 基于节点组合的事件流程编排方法、装置、设备及介质 | |
CN112487170B (zh) | 面向场景配置的人机交互对话机器人系统 | |
CN114443037A (zh) | 一种cae云软件的开发与集成系统和方法 | |
CN111126931B (zh) | 基于数据处理的节点生成方法、装置和计算机设备 | |
CN114416305A (zh) | 一种机器人引擎实现方法、系统及电子设备 | |
CN112527296A (zh) | 用户界面的定制方法及装置、电子设备、存储介质 | |
CN109213475B (zh) | 卫星多回路比对指令单元遥控源程序的人工智能书写方法 | |
CN112685043A (zh) | 回调函数的异步转化方法、装置、设备及可读存储介质 | |
CN113127354B (zh) | 基于Web UI的自动化测试方法、装置、设备及存储介质 | |
CN113992941B (zh) | 基于无服务器函数计算的云边协同视频分析系统与方法 | |
CN116954576A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |