一种模型移植的方法、系统及终端设备与流程

文档序号:30700114发布日期:2022-07-09 19:24阅读:174来源:国知局
一种模型移植的方法、系统及终端设备与流程

1.本技术涉及模型移植的领域,尤其是涉及一种模型移植的方法、系统及终端设备。


背景技术:

2.it领域的各大主流ai学习平台都会自己独特的特点,不同的平台上有不同的模型。在实际应用模型的过程中,利用模型进行推理服务需要选定一个特定的平台,而能够满足应用的需求模型很可能是基于其他平台训练而来的,此时需要将一种平台所编写的代码并训练出来的模型移植到另一平台的模型。
3.相关技术中,将一种平台所编写的代码并训练出来的模型移植到另一平台的模型,通常是在新的平台上重写编写代码,然后再训练参数,以达到和原平台相同的功能。
4.针对上述中的相关技术,发明人认为,在新的平台上重新编写代码然后再训练参数,是一个非常耗时耗力的过程,模型移植的效率低。


技术实现要素:

5.为了提高模型移植速度,本技术提供一种模型移植的方法、系统及终端设备。
6.本技术提供的一种模型移植的方法、系统及终端设备采用如下的技术方案:一种模型移植的方法,包括。
7.获取模型文件并上传至模型仓库;基于所述模型文件,获取模型结构;判断所述模型结构是否正常;若所述模型结构不正常,则重新获取所述模型文件并判断所述模型结构是否正常;若所述模型结构正常,进行模型移植;判断所述模型移植是否成功;若所述模型移植成功,将移植后在不同平台的所述新模型文件上传至模型仓库;若所述模型移植失败,则更换移植精度,进行下一轮模型移植,直至移植成功。
8.通过采用上述技术方案,将现有的模型文件上传至模型仓库,根据模型文件获取到模型结构,根据模型结构的正常判断所上传的模型是否能够进行模型移植,当模型结构正常的时候进行模型移植,当模型结构不正常的时候,则需要重新上传模型文件并再次判断模型结构是否正常,只有模型结构正常的模型文件能够进行模型移植,模型结构为模型文件中的各个节点的连接关系,进行模型移植的时候,如果模型移植成功,则将模型移植后的新模型文件上传至模型仓库,方便用户之后需要使用的时候可以直接调用模型移植后的模型文件去使用,如果模型移植失败,则更换模型移植时所选择的模型移植精度,进行下一轮模型移植,直到模型移植成功后上传至模型仓库,在不同平台之间进行模型移植,节约了代码编写的时间以及训练参数的时间,大大提高了模型移植的效率。
9.可选的,所述获取模型文件并上传至模型仓库包括:
获取所述模型文件的文件扩展名;获取被移植平台信息;基于所述被移植平台信息,获取验证文件的文件扩展名;判断所述模型文件的文件扩展名和所述验证文件的文件扩展名是否相同;若所述模型文件的文件扩展名和所述验证文件的文件扩展名不相同,修改所述验证文件的扩展名,并重新判断所述模型文件的文件扩展名和所述验证文件的文件扩展名;若所述模型文件的文件扩展名和所述验证文件的文件扩展名相同,则上传所述模型文件至所述模型仓库。
10.通过采用上述技术方案,模型文件的文件扩展名为识别该模型文件是否有效的验证方式,不同平台的模型文件的扩展名是不相同的,通过获取到上传的模型文件的文件扩展名,然后获取被移植平台的平台信息,根据平台信息获取到验证文件的文件扩展名,如果验证文件的文件扩展名和获取到模型文件的文件扩展名相同,则模型文件是有效的,如果不相同,则需要修改验证文件,然后重新对模型文件进行验证直到对模型文件的验证成功,保证所上传到模型仓库的模型文件是正确的。
11.可选的,所述判断所述模型结构是否正常包括:基于所述模型结构,获取模型网络节点信息;基于所述网络节点信息, 获取当前节点的名、与当前节点关联的入度节点名、出度节点名和节点算子超参数;基于当前节点的名、与当前节点关联的入度节点名、出度节点名和节点算子超参数,比较所述模型结构与预设结构是否相同;若所述模型结构与所述预设结构相同,则所述模型结构正常;若所述模型结构与所述预设结构不相同,则所述模型结构不正常。
12.通过采用上述技术方案,模型文件里面包含了若干节点信息以及节点之间的连接关系叫做模型结构,根据模型结构,获取到网络节点信息,根据当前节点的名字、与当前节点关联的入度节点名、出度节点名和节点算子超参数组成的模型结构,通过显示屏显示出来,与预设的该模型结构进行比对,如果模型结构相同,则代表模型结构正常,如果模型结构不相同,则代表模型结构不正常,通过判断模型结构的是否正常,以此来确定上传的模型文件是否完整。
13.可选的,所述若所述模型结构正常之后包括:获取所述模型文件的源文件;基于移植需求,获取配置文件信息;判断所述源文件中是否存在所述配置文件中对应的节点;若所述源文件中存在所述配置文件中对应的节点,则进行模型移植;若所述源文件中不存在所述配置文件中对应的节点,则生成异常报告。
14.通过采用上述技术方案,模型文件的源文件包含了节点数据以及各个节点的名字,对模型进行移植的时候,需要知道网络节点的起点与终点,因此需要知道配置文件中的各个节点的名字,比较各个节点的名字是否相同以确定该模型结构或者部分结构的起点与终点,以此来保证进行模型移植的模型文件的所需要的功能确实存在于模型文件中。
15.可选的,所述进行模型移植包括:
基于所述模型文件,获取模型算子;获取待移植平台的模型算子格式;基于开放神经网络交换格式,将所述模型算子转换成待移植平台的模型算子格式。
16.通过采用上述技术方案,每个平台的模型文件都有不同的模型算子格子,根据模型文件获取当前的模型算子格式,然后根据待移植的平台,获取到待移植平台的模型算子格式,将现有的模型文件的算子格式转换成待移植平台的模型算子格式,以此将其他平台的模型文件转换成需要移植的平台的模型文件。
17.可选的,所述更换移植精度,进行下一轮模型移植包括:基于移植需求及当前移植精度,得到下一轮移植精度,所述下一轮移植精度对应的模型算子移植成功率大于所述当前移植精度对应的模型算子移植成功率;根据所述下一轮所述移植精度进行下一轮所述模型移植。
18.通过采用上述技术方案,在进行模型移植的时候,根据所需要的移植需求,选择一个相应的移植精度,如果当前选择的模型移植精度在进行模型移植的时候,模型移植失败了,则更换模型移植精度进行下一轮模型移植,更换的移植精度,在算子不能完全映射的时候,模型移植服务会尝试利用目标平台多种算子进行组合运算,达到与源平台算子相似的计算规则,因此移植成功率变高。
19.可选的,所述判断所述模型移植是否成功包括:获取所述模型移植前的模型算子和所述模型移植后的模型算子;将所述模型移植后的模型算子与模型移植前的算子进行映射比对,判断是否有算子不存在算子映射集合中;若是有算子不存在算子映射集合中,则模型移植失败;若是所有算子都存在算子映射集合中,则模型移植成功。
20.通过采用上述技术方案,进行模型移植前的算子组成一个模型算子合集,模型转换后的算子组成了一个模型算子合集,移植后的模型文件的算子与模型移植前的模型算子进行映射,如果模型移植后的算子都能在模型移植前的算子合集中找到,则模型移植成功,如果有存在任意一个算子无法在模型移植前的算子合集中找到,则表示算子没有完全转化,表示模型移植失败。
21.可选的,所述若所述模型移植成功,将所述新模型上传至模型仓库之后包括:获取所述模型移植前的节点输出的张量数值,得到第一图表合集;获取所述模型移植后的节点输出的张量数值,得到第二图表合集;基于预设规则,计算所述第一图表合集和所述第二图表合集的数值差异,生成精度报表;基于所述精度报表,判断所述精度是否在预设范围;若是,则所述移植后的模型能够使用;若否,则所述移植后的模型不能使用。
22.通过采用上述技术方案,由于在模型移植时为了保证移植的成功率,会更换移植精度以保证模型移植的成功,更换模型移植精度的时候,进行模型移植的时候会利用目标平台多种算子进行组合运算,达到与源平台算子相似的计算规则,由于不是原生映射关系,
因此模型移植后的运算结果存在差异,此时根据得到的第一图表合集和第二图标合集,生成精度报表,根据精度报表判断该模型是否能够使用。
23.一种模型移植系统,包括:第一获取模块,用于获取模型文件并上传至模型仓库;第二获取模块,用于基于所述模型文件,获取模型结构;判断模块,用于判断所述模型结构是否正常;若所述模型结构不正常,则重新获取所述模型文件并判断所述模型结构是否正常;移植模块,用于若所述模型结构正常,进行模型移植;移植结果判断模块,用于判断所述模型移植是否成功;若所述模型移植成功,将移植后在不同平台的所述新模型文件上传至模型仓库;若所述模型移植失败,则更换移植精度,重新进行模型移植并判断所述模型移植是否成功,直至移植成功。
24.通过采用上述技术方案,第一获取模块获取到所需要移植的模型文件并上传至模型仓库,第二获取模块根据模型文件获取到模型结构,判断模块判断模型文件是否正常,如果正常,进行模型移植,如果模型结构不正常,则重新获取模型文件并上传,移植模块进行模型移植,移植结果判断模块判断模型移植是否成功,如果移植成功,则将新的模型移植文件上传至模型仓库,如果模型移植失败,则更换移植精度后再次进行模型移植直到模型移植成功。
25.本技术提供一种终端设备,采用如下的技术方案:一种终端设备,包括存储器、处理器及存储在存储器中并能够在处理器上运行的计算机程序,所述处理器加载并执行计算机程序时,采用了上述的一种模型移植的方法。
26.通过采用上述技术方案,通过将上述的一种模型移植的方法生成计算机程序,并存储于存储器中,以被处理器加载并执行,从而,根据存储器及处理器制作终端设备,方便使用。
27.综上所述,本技术包括以下有益技术效果:将现有的模型文件上传至模型仓库,根据模型文件获取到模型结构,根据模型结构的正常判断所上传的模型是否能够进行模型移植,当模型结构正常的时候进行模型移植,当模型结构不正常的时候,则需要重新上传模型文件并再次判断模型结构是否正常,只有模型结构正常的模型文件能够进行模型移植,模型结构为模型文件中的各个节点的连接关系,进行模型移植的时候,如果模型移植成功,则将模型移植后的新模型文件上传至模型仓库,方便用户之后需要使用的时候可以直接调用模型移植后的模型文件去使用,如果模型移植失败,则更换模型移植时所选择的模型移植精度,进行下一轮模型移植,直到模型移植成功后上传至模型仓库。
附图说明
28.图1是本技术实施例一种模型移植的方法的方法流程图;图2是本技术实施例获取模型文件并上传至模型仓库的方法流程图;图3是本技术实施例判断模型结构是否正常的方法流程图;
图4是本技术实施例若模型结构正常之后的方法流程图;图5是本技术实施例进行模型移植的方法流程图;图6是本技术实施例更换移植精度,进行下一轮模型移植的方法流程图;图7是本技术实施例判断模型移植是否成功的方法流程图;图8是本技术实施例若模型移植成功,将新模型上传至模型仓库之后的方法流程图;图9是本技术实施例一种模型移植系统的系统框图。
29.附图标记说明:1、第一获取模块;2、第二获取模块;3、判断模块;4、移植模块;5、移植结果判断模块。
具体实施方式
30.以下结合全部附图对本技术作进一步详细说明。
31.本技术实施例公开一种模型移植的方法,参照图1,包括:s100、获取模型文件并上传至模型仓库。
32.其中,模型文件为待进行模型移植的模型,在特定的平台上运行,具有一定的功能,模型仓库用来储存模型文件,通常,在其中一个平台上,选择具备所需要功能的模型后,将改模型的文件上传至模型仓库,方便后续进行模型移植,将模型文件从其中一个平台移动到另一个平台去使用,使移植后的模型在另一个平台和移植前的平台具备相同的功能。
33.s110、基于模型文件,获取模型结构。
34.其中,模型结构为模型文件内的若干个节点之间的连接关系以及这些节点的节点信息。
35.s120、判断模型结构是否正常。
36.其中,判断模型结构是否正常用来检验所上传的模型文件是否具备某个完成的功能,如果模型的结构都不正常,则代表上传的模型文件所具备的功能也会有缺失。
37.s130、若模型结构不正常,则重新获取模型文件并判断模型结构是否正常。
38.其中,当检测到模型结构不正常的时候,代表上传的模型文件有损坏,需要重新上传新的模型文件后并重新进行模型结构检测,知道确保模型文件没有问题的时候才进行模型移植。
39.s140、若模型结构正常,进行模型移植。
40.其中,模型结构正常的时候,代表该模型文件具备所需要的全部功能,模型文件是完整的,可以进行模型移植。
41.s150、判断模型移植是否成功。
42.其中,在进行模型移植的时候,由于移植需求的精度不相同,模型移植可能导致失败。
43.s160、若模型移植成功,将移植后在不同平台的新模型文件上传至模型仓库。
44.其中,如果模型移植成功,则移植后的模型文件可以在移植的目标平台上运行,将该文件上传至模型仓库进行同一管理,需要使用移植后的新模型文件的时候,直接从模型仓库中调用该模型仓库到相应的使用平台即可。
45.s170、若模型移植失败,则更换移植精度,进行下一轮模型移植,直至移植成功。
46.其中,当模型移植失败的时候,为了使此模型能够模型移植成功,降低模型移植的精度,重新进行模型移植,直到模型移植成功的时候。
47.本技术实施例移植模型移植的方法的实施原理为:将现有的模型文件上传至模型仓库,根据模型文件获取到模型结构,根据模型结构的正常判断所上传的模型是否能够进行模型移植,当模型结构正常的时候进行模型移植,当模型结构不正常的时候,则需要重新上传模型文件并再次判断模型结构是否正常,只有模型结构正常的模型文件能够进行模型移植,模型结构为模型文件中的各个节点的连接关系,进行模型移植的时候,如果模型移植成功,则将模型移植后的新模型文件上传至模型仓库,方便用户之后需要使用的时候可以直接调用模型移植后的模型文件去使用,如果模型移植失败,则更换模型移植时所选择的模型移植精度,进行下一轮模型移植,直到模型移植成功后上传至模型仓库,在不同平台之间进行模型移植,节约了代码编写的时间以及训练参数的时间,大大提高了模型移植的效率。
48.在图1所示实施例步骤的步骤s100中,获取模型文件并上传至模型仓库,模型文件上传至模型仓库的时候对模型文件进行验证,具体通过图2所示实施例进行详细说明。
49.参照图2,获取模型文件并上传至模型仓库包括:s200、获取模型文件的文件扩展名。
50.其中,模型文件为工程师在特定平台上编写的算法,然后通过长时间训练参数达到具备某一特定功能的模型,不同的平台的模型文件的扩展名不相同。
51.s210、获取被移植平台信息。
52.其中,被移植平台为模型移植前所运行的平台。
53.s220、基于被移植平台信息,获取验证文件的文件扩展名。
54.其中,每个平台运行的模型文件的文件扩展名不相同,验证文件为验证上传的模型文件的后缀名的文件。
55.s230、判断模型文件的文件扩展名和验证文件的文件扩展名是否相同。
56.其中,进行模型移植的时候,被移植的模型文件的平台是确定的,因此该模型文件的后缀名是确定的,因此比较验证文件的文件扩展名和模型文件的文件扩展名是否相同,即可确认所上传的模型文件的格式或者模型文件是否正确,对模型文件的有效性进行验证。举例说明,例如平台为onnx平台,那么文件扩展名必须为.onnx,如果平台为.tensorflow平台:graphdef格式的模型文件扩展名必须为.graphdef,savedmodel格式的模型扩展名必须为.pb,不同的平台的模型文件的扩展名不相同,根据扩展名的不相同判断模型文件是否有效。
57.s240、若模型文件的文件扩展名和验证文件的文件扩展名不相同,修改验证文件的扩展名,并重新判断模型文件的文件扩展名和验证文件的文件扩展名是否相同。
58.其中,当模型文件的文件扩展名与验证文件的扩展不相同的时候,此时可能是获取文件扩展名的时候的平台选择错误,修改验证文件的扩展名重新进行验证。
59.s250、若模型文件的文件扩展名和验证文件的文件扩展名相同,则上传模型文件至模型仓库。
60.其中,当模型文件的扩展名和验证文件的文件扩展名相同的时候,此时代表上传的模型文件是有效的,将该模型文件上传至模型仓库。
61.本技术实施例获取模型文件并上传至模型仓库的实施原理为:模型文件的文件扩展名为识别该模型文件是否有效的验证方式,不同平台的模型文件的扩展名是不相同的,通过获取到上传的模型文件的文件扩展名,然后获取被移植平台的平台信息,根据平台信息获取到验证文件的文件扩展名,如果验证文件的文件扩展名和获取到模型文件的文件扩展名相同,则模型文件是有效的,如果不相同,则需要修改验证文件,然后重新对模型文件进行验证直到对模型文件的验证成功。
62.在图1所示实施例步骤的步骤s120中,判断模型结构是否正常,具体通过图3所示实施例进行详细说明。
63.参照图3判断模型结构是否正常包括:s300、基于模型结构,获取模型网络节点信息。
64.其中,模型结构为对模型文件进行分析的时候,分析出的模型文件中包含的节点信息以及节点之间的连接关系,因此通过模型结构可以获取到模型网络节点信息。
65.s310、基于网络节点信息, 获取当前节点的名、与当前节点关联的入度节点名、出度节点名和节点算子超参数。
66.其中,不同模型平台有专属软件开发工具包可以解析各自平台的模型文件,模型文件中存储着模型节点的信息,信息中包含:当前节点的名、与其关联的入度节点名、出度节点名和节点算子超参数, 模型算子链接时通过输出节点,通过广度优先搜索方式,搜索并标识与输出节点关联的所有节点完整链路关系,通过拓扑排序的方式根据入度的节点是否全部访问条件来排列节点所属层级关系,获取的链路关系使用可视化方式展示在界面上。
67.s320、基于当前节点的名、与当前节点关联的入度节点名、出度节点名和节点算子超参数,比较模型结构与预设结构是否相同。
68.其中,模型文件的各个节点的连接关系形成类似树状网络的结构,通过与预设的结构进行比较,判断模型结构是否正常,预设结构为该模型文件理论上拥有的结构形状。
69.s330、若模型结构与预设结构相同,则模型结构正常。
70.其中,当模型结构正常的时候,表示该模型文件的各个节点的信息都正常,模型文件具备的功能没有异常。
71.s340、若模型结构与预设结构不相同,则模型结构不正常。
72.其中,当模型结构不正常的时候,表示该模型缺少了部分节点,模型文件的功能缺失。
73.本技术实施例判断模型结构是否正常的实施原理为:模型文件里面包含了若干节点信息以及节点之间的连接关系叫做模型结构,根据模型结构,获取到网络节点信息,根据当前节点的名字、与当前节点关联的入度节点名、出度节点名和节点算子超参数组成的模型结构,通过显示屏显示出来,与预设的该模型结构进行比对,如果模型结构相同,则代表模型结构正常,如果模型结构不相同,则代表模型结构不正常。
74.在图1所示实施例步骤的步骤s140中,若模型结构正常之后,需要找到模型文件中的节点的起点与终点,具体通过图4所示实施例进行详细说明。
75.若模型结构正常之后包括:s400、获取模型文件的源文件。
76.其中,源文件中包含了模型结构的节点信息与各个节点的名称。
77.s410、基于移植需求,获取配置文件信息。
78.其中,一个模型文件中可能包含了许多的功能,在进行模型移植的时候,可能只需要对其中的一部分进行移植,配置文件中包含了所需要进行模型移植的部分的节点名称,获取到起点和终点即可以选择所需要移植的部分。
79.s420、判断源文件中是否存在配置文件中对应的节点。
80.其中,如果源文件中不存在所需要移植的模型文件的那一部分的节点,则表示该模型文件是无效的。
81.s430、若源文件中存在配置文件中对应的节点,则进行模型移植。
82.其中,如果源文件中存在所需要移植的模型文件的那一部分的节点,则表示该模型文件是有效的,可以进行模型移植并且移植后能实现所需要的功能。
83.s440、若源文件中不存在配置文件中对应的节点,则生成异常报告。
84.其中,异常报告内包含了检查模型文件的功能是否完整的时候,缺失的部分节点以及结构信息。
85.本技术实施例若模型结构正常之后的实施原理为:模型文件的源文件包含了节点数据以及各个节点的名字,对模型进行移植的时候,需要知道网络节点的起点与终点,因此需要知道配置文件中的各个节点的名字,比较各个节点的名字是否相同以确定该模型结构或者部分结构的起点与终点,以此来保证进行模型移植的模型文件的所需要的功能确实存在于模型文件中。
86.在图1所示实施例步骤的步骤s150中,进行模型移植,具体通过图5所示实施例进行详细说明。
87.参照图5,进行模型移植包括:s500、基于模型文件,获取模型算子。
88.其中,深度学习算法由若干个计算单元组成,我们称这些计算单元为算子。
89.s510、获取待移植平台的模型算子格式。
90.s520、基于开放神经网络交换格式,将模型算子转换成待移植平台的模型算子格式。
91.其中,开放神经网络交换格式onnx是一种针对机器学习设计的一种开放式的文件格式,它使得不同的人工智能平台可以采用相同的格式储存数据并交换。
92.本技术实施例每个平台的模型文件都有不同的模型算子格子,根据模型文件获取当前的模型算子格式,然后根据待移植的平台,获取到待移植平台的模型算子格式,将现有的模型文件的算子格式转换成待移植平台的模型算子格式,以此将其他平台的模型文件转换成需要移植的平台的模型文件。
93.在图1所示实施例步骤的步骤s170中,若模型移植失败,则更换移植精度,进行下一轮模型移植,直至移植成功,具体通过图6所示实施例进行详细说明。
94.参照图6,更换移植精度,进行下一轮模型移植包括:s600、基于移植需求及当前移植精度,得到下一轮移植精度,下一轮移植精度对应的模型算子移植成功率大于当前移植精度对应的模型算子移植成功率。
95.其中,移植精度为模型算子转化时的匹配度,模型移植服务会搜寻源平台模型算
子映射的对应目标平台模型算子,这样可以保证算子转换时的匹配度最高,最大程度地实现模型推理精度损失最小。模型移植时所选择精度通常有三种,精度优先,成功率优先以及一般优先,精度优先模型移植后的模型算子的匹配度最高,源平台与目标平台的算子完全映射,成功率优先当源模型的算子在目标平台不存在有映射关系的算子时,模型移植服务会尝试利用目标平台多种算子进行组合运算,达到与源平台算子相似的计算规则,这样可以最大化地保证模型移植的成功率,但由于两者不是原生映射关系的算子,运算结果存在差异,对于移植后的模型,推理精度可能存在较大损失,一般优先介于精度优先与成功率优先之间,是一种折中方案,一定程度上即保证了模型移植的成功率,也能够使移植后的新模型在推理精度上产生较小的损失。
96.s610、根据下一轮移植精度进行下一轮模型移植。
97.其中,为了使移植后的模型文件产生的效果与原模型文件的效果最接近,通常优先选择精度优先去进行模型移植,当精度优先移植失败的时候,再去更换移植精度,选择移植成功率更高的。
98.本技术实施例更换移植精度,进行下一轮模型移植的实施原理为:在进行模型移植的时候,根据所需要的移植需求,选择一个相应的移植精度,如果当前选择的模型移植精度在进行模型移植的时候,模型移植失败了,则更换模型移植精度进行下一轮模型移植,更换的移植精度,在算子不能完全映射的时候,模型移植服务会尝试利用目标平台多种算子进行组合运算,达到与源平台算子相似的计算规则,因此移植成功率变高。
99.参照图7,判断模型移植是否成功包括:s700、获取模型移植前的模型算子和模型移植后的模型算子。
100.其中,模型移植前的算子组成一个算子合集,模型移植后的模型算组也组成一个算子合集。
101.s710、将模型移植后的模型算子与模型移植前的算子进行映射比对,判断是否有算子不存在算子映射集合中。
102.其中,模型移植后的算子与模型移植前的算子进行映射,如果模型移植后的算子都存在于模型移植前的模型算子合集中,则表示模型算子全部转化成功,模型移植成功,如果存在有算子未转化成功,则模型移植失败。
103.s720、若是有算子不存在算子映射集合中,则模型移植失败。
104.s730、若是所有算子都存在算子映射集合中,则模型移植成功。
105.本技术实施例判断模型移植是否成功的实施原理为:进行模型移植前的算子组成一个模型算子合集,模型转换后的算子组成了一个模型算子合集,移植后的模型文件的算子与模型移植前的模型算子进行映射,如果模型移植后的算子都能在模型移植前的算子合集中找到,则模型移植成功,如果有存在任意一个算子无法在模型移植前的算子合集中找到,则表示算子没有完全转化,表示模型移植失败。
106.在图1所示实施例步骤的步骤s160中,若模型移植成功,将移植后在不同平台的新模型文件上传至模型仓库,具体通过图8所示实施例进行详细说明。
107.参照图8,若模型移植成功,将新模型上传至模型仓库之后包括:s800、获取模型移植前的节点输出的张量数值,得到第一图表合集。
108.其中,张量数值为算子中的数据,包括输入与输出的数据。
109.s810、获取模型移植后的节点输出的张量数值,得到第二图表合集。
110.s820、基于预设规则,计算第一图表合集和第二图表合集的数值差异,生成精度报表。
111.其中,预设规则根据不同的移植需求而不相同,预设规则为判断模型移植后能够满足实用需求的标准,例如上传的少批量临时业务数据,考虑到一些简单分类与回归的端到端模型,用户可以直接获取模型结果,这些结果比较直观,例如分类的类别id,此种情况可上传业务数据进行验证,还可以通过设置模型的输入节点的形状(shape)和类型(dtype), 服务将自动随机生成一组伪造样本。对于大型机器学习/深度学习算法,一个算法是由多个模型组成,模型之间数据交换的中间数据与应用场景相关,这样的模型就无法直接馈入业务数据。由于模型移植前和移植后输入节点形状和类型都是一致的,模型就相当一个函数,判断两个函数输出是否一致或者近似程度,可以通过在函数作用域集中随机选取一个相同的数据点,同时馈入两个函数并通过输出值来判断新旧两个模型的输出差异判断比对精度差异大小的方法:图表信息为模型某节点输出张量数值,精度差异程度的计算过程是通过先将两张图表x1, x2进行矩阵相减后取绝对值,得到残差矩阵r=|x1-x2|,计算残差矩阵最大值max和最小值min,通过计算r/(max-min)得到和数据尺度无关的归一化数值,将归一化后差异程度d = |x1-x2| / (max-min), 再除分桶份数n,计算出每份桶精度范围值d/n = (|x1-x2| / max-min)/n, 利用色域由蓝变化红渐变方式,给两张矩阵图表上色,展示给用户各数值差异程度。通过色彩的不同,用户可以很直观的观察到模型转化后两者的数据差异。精度报表为两者数据差异的合集,通过收集所有数据与差异数据,可以看出模型转换后数据不同的程度。
112.s830、基于精度报表,判断精度是否在预设范围。
113.其中,例如一个人脸检测模型,对模型中的节点数据进行验证的时候,仅仅有两行的数据出现了颠倒,比如原模型中的数据顺序为957和958,但是模型转换后变成了958和957,在图表中987和958两行会标红,其他正常的数据是蓝色,色差的不同可以很直观的观察出差异数据,这种虽然出现了数据顺序颠倒,倒是对于正常使用没有影响,因此,移植的精度是满足需求的,模型移植成功。
114.s840、若是,则移植后的模型能够使用。
115.s850、若否,则移植后的模型不能使用。
116.本技术实施例若模型移植成功,将新模型上传至模型仓库之后的实施原理为:模型移植的过程中,由于移植精度的不同,移植后的模型计算出的数据与原模型可能会有差异,通过计算模型移植前的节点张量数值与模型移植后的节点张量数值,判断移植后的模型是否能够满足实用需求,根据模型文件的不同,其判断标准也不相同。
117.以上详细描述了一种模型移植方法,下面对基于一种模型移植方法的一种模型移植系统进行详细说明。
118.一种模型移植系统,包括:第一获取模块1,用于获取模型文件并上传至模型仓库。
119.第二获取模块2,用于基于模型文件,获取模型结构。
120.判断模块3,用于判断模型结构是否正常。
121.若模型结构不正常,则重新获取模型文件并判断模型结构是否正常。
122.移植模块4,用于若模型结构正常,进行模型移植。
123.移植结果判断模块5,用于判断模型移植是否成功。
124.若模型移植成功,将移植后在不同平台的新模型文件上传至模型仓库。
125.若模型移植失败,则更换移植精度,重新进行模型移植并判断模型移植是否成功,直至移植成功。
126.本技术实施例一种模型移植系统的实施原理为:第一获取模块1获取到所需要移植的模型文件并上传至模型仓库,第二获取模块2根据模型文件获取到模型结构,判断模块3判断模型文件是否正常,如果正常,进行模型移植,如果模型结构不正常,则重新获取模型文件并上传,移植模块4进行模型移植,移植结果判断模块5判断模型移植是否成功,如果移植成功,则将新的模型移植文件上传至模型仓库,如果模型移植失败,则更换移植精度后再次进行模型移植直到模型移植成功。本技术实施例还公开一种终端设备,包括存储器、处理器以及存储在存储器中并能够在处理器上运行的计算机程序,其中,处理器执行计算机程序时,采用了上述实施例中的一种模型移植方法。
127.其中,终端设备可以采用台式电脑、笔记本电脑或者云端服务器等计算机设备,并且,终端设备包括但不限于处理器以及存储器,例如,终端设备还可以包括输入输出设备、网络接入设备以及总线等。
128.其中,处理器可以采用中央处理单元(cpu),当然,根据实际的使用情况,也可以采用其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以采用微处理器或者任何常规的处理器等,本技术对此不做限制。
129.其中,存储器可以为终端设备的内部存储单元,例如,终端设备的硬盘或者内存,也可以为终端设备的外部存储设备,例如,终端设备上配备的插接式硬盘、智能存储卡(smc)、安全数字卡(sd)或者闪存卡(fc)等,并且,存储器还可以为终端设备的内部存储单元与外部存储设备的组合,存储器用于存储计算机程序以及终端设备所需的其他程序和数据,存储器还可以用于暂时地存储已经输出或者将要输出的数据,本技术对此不做限制。
130.其中,通过本终端设备,将上述实施例中的一种模型移植方法存储于终端设备的存储器中,并且,被加载并执行于终端设备的处理器上,方便使用。
131.以上均为本技术的较佳实施例,并非依此限制本技术的保护范围,故:凡依本技术的结构、形状、原理所做的等效变化,均应涵盖于本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1