深度学习模型转换方法及装置制造方法及图纸

技术编号:33946103 阅读:18 留言:0更新日期:2022-06-29 21:22
本申请实施例提供一种深度学习模型转换方法及装置,该方法包括:根据函数装饰器和捕获函数对第一模型的网络结构代码进行处理,获取第一模型中的公共层、自定义层、以及每个层的层参数,第一模型为在第一深度学习框架下可识别的模型;根据公共层、自定义层和每个层的层参数,生成第一模型的中间表示格式IR,所述中间表示格式为多个深度学习框架下进行模型转换的统一表示格式;根据第一模型的中间表示格式,生成第二深度学习框架下可识别的第二模型。能实现自定义层的完整转换,从而保障第一模型在不同深度学习模型框架下的正确转换。模型在不同深度学习模型框架下的正确转换。模型在不同深度学习模型框架下的正确转换。

【技术实现步骤摘要】
深度学习模型转换方法及装置


[0001]本申请实施例涉及计算机
,尤其涉及一种深度学习模型转换方法及装置。

技术介绍

[0002]深度学习模型是机器学习的一种,深度学习框架是用于开发深度学习模型而产生的。在一些情况下,需要将一个框架下的深度学习模型转换为另一个框架下的深度学习模型,以提高处理器的运算效率。
[0003]在不同的框架下进行深度学习模型的转换时,通常涉及公共层和自定义层的转换。其中,由于公共层为不同的框架下均支持的层,因此转换较容易,而自定义层由于是用户根据模型的功能配置得到的层,不同的框架下设置自定义层的方式不同,因此自定义层的转换相对较复杂。目前针对自定义层的转换,通常是将自定义层作为一系列特定业务的逻辑细粒度算子,然后遍历这些算子并提取相应的参数,进行转换。
[0004]上述方案在自定义层转换后,在另一个框架下得到的是一个个独立的算子,而不是一个完整的自定义层,从而使得模型转换容易出现问题。

技术实现思路

[0005]本申请实施例提供一种深度学习模型转换方法及装置,以解决自定义层转换后被拆分为独立的算子,使得模型转换容易出现错误的问题。
[0006]第一方面,本申请实施例提供一种深度学习模型转换方法,包括:
[0007]根据函数装饰器和捕获函数对第一模型的网络结构代码进行处理,获取所述第一模型中的公共层、自定义层、以及每个层的层参数,所述第一模型为在第一深度学习框架下可识别的模型;
[0008]根据所述公共层、所述自定义层和所述每个层的层参数,生成所述第一模型的IR,所述IR为多个深度学习框架下进行模型转换的统一表示格式;
[0009]根据所述第一模型的IR,生成第二深度学习框架下可识别的第二模型。
[0010]在一种可能的实施方式中,根据函数装饰器和捕获函数对第一模型的网络结构代码进行处理,获取所述第一模型中的公共层、自定义层、以及每个层的层参数,包括:
[0011]执行所述第一模型,并在所述第一模型执行时根据所述函数装饰器对所述第一模型中的算子进行重定位处理,获取所述第一模型中各个层的类型,其中,任意一个层中包括至少一个算子;
[0012]根据所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层;
[0013]根据所述捕获函数获取每个所述自定义层和每个所述公共层的层参数,所述层参数包括超参和学习参数。
[0014]在一种可能的实施方式中,根据所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层,包括:
[0015]获取预设层名单;
[0016]根据所述预设层名单和所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层。
[0017]在一种可能的实施方式中,根据所述预设层名单和所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层,包括:
[0018]针对所述各个层中的任意一个层,若根据所述层的类型确定所述层属于所述预设层名单中的层,则确定所述层为所述公共层;
[0019]若根据所述层的类型确定所述层不属于所述预设层名单中的层,则确定所述层为所述自定义层。
[0020]在一种可能的实施方式中,在根据函数装饰器和捕获函数对第一模型的网络结构代码进行处理,获取所述第一模型中的公共层、自定义层、以及每个层的层参数之前,所述方法还包括:
[0021]确定各所述自定义层中包括的算子位于同一个函数中。
[0022]在一种可能的实施方式中,根据所述公共层、所述自定义层和所述每个层的层参数,获取所述第一模型的IR,包括:
[0023]针对每个公共层,获取所述公共层对应的第一转换函数,并根据所述第一转换函数和所述公共层的层参数,获取所述公共层对应的IR;
[0024]针对各所述自定义层,获取所述自定义层对应的第二转换函数,并根据所述第二转换函数和所述自定义层的层参数,生成所述自定义层对应的IR;
[0025]根据所述公共层对应的IR和所述自定义层对应的IR,生成所述第一模型的IR。
[0026]在一种可能的实施方式中,根据所述公共层对应的IR和所述自定义层对应的IR,获取所述第一模型的IR,包括:
[0027]获取所述第一模型中各所述公共层和各所述自定义层之间的连接关系;
[0028]根据所述连接关系、所述公共层对应的IR和所述自定义层对应的IR,生成所述第一模型的IR。
[0029]在一种可能的实施方式中,所述方法还包括:
[0030]接收客户端发送的请求指令,所述请求指令用于请求具有第一功能的所述第二模型,所述第一功能为所述第一模型的功能,其中,所述第一功能为目标检测功能和/或目标识别功能;
[0031]向所述客户端发送所述第二模型。
[0032]第二方面,本申请实施例提供一种深度学习模型转换装置,包括:
[0033]获取模块,用于根据函数装饰器和捕获函数对第一模型的网络结构代码进行处理,获取所述第一模型中的公共层、自定义层、以及每个层的层参数,所述第一模型为在第一深度学习框架下可识别的模型;
[0034]处理模块,用于根据所述公共层、所述自定义层和所述每个层的层参数,生成所述第一模型的IR,所述IR为多个深度学习框架下进行模型转换的统一表示格式;
[0035]转换模块,用于根据所述第一模型的IR,生成第二深度学习框架下可识别的第二模型。
[0036]在一种可能的实施方式中,所述获取模块具体用于:
[0037]执行所述第一模型,并在所述第一模型执行时根据所述函数装饰器对所述第一模型中的算子进行重定位处理,获取所述第一模型中各个层的类型,其中,任意一个层中包括至少一个算子;
[0038]根据所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层;
[0039]根据所述捕获函数获取每个所述自定义层和每个所述公共层的层参数,所述层参数包括超参和学习参数。
[0040]在一种可能的实施方式中,所述获取模块具体用于:
[0041]获取预设层名单;
[0042]根据所述预设层名单和所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层。
[0043]在一种可能的实施方式中,所述获取模块具体用于:
[0044]针对所述各个层中的任意一个层,若根据所述层的类型确定所述层属于所述预设层名单中的层,则确定所述层为所述公共层;
[0045]若根据所述层的类型确定所述层不属于所述预设层名单中的层,则确定所述层为所述自定义层。
[0046]在一种可能的实施方式中,所述获取模块还用于,在根据函数装饰器和捕获函数对第一模型的网络结构代码进行处理,获取所述第一模型中的公共层、自定义层、以及每个层的层参数之前:
[0047]确定各所述自定义层中包括的算子位于同一个函数中。
[0048]在一种可能的实施方式中,所述处理模块具体用于:
[0049]针对每个公本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种深度学习模型转换方法,其特征在于,包括:根据函数装饰器和捕获函数对第一模型的网络结构代码进行处理,获取所述第一模型中的公共层、自定义层、以及每个层的层参数,所述第一模型为在第一深度学习框架下可识别的模型;根据所述公共层、所述自定义层和所述每个层的层参数,生成所述第一模型的中间表示格式IR,所述IR为多个深度学习框架下进行模型转换的统一表示格式;根据所述第一模型的IR,生成第二深度学习框架下可识别的第二模型。2.根据权利要求1所述的方法,其特征在于,根据函数装饰器和捕获函数对第一模型的网络结构代码进行处理,获取所述第一模型中的公共层、自定义层、以及每个层的层参数,包括:执行所述第一模型,并在所述第一模型执行时根据所述函数装饰器对所述第一模型中的算子进行重定位处理,获取所述第一模型中各个层的类型,其中,任意一个层中包括至少一个算子;根据所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层;根据所述捕获函数获取每个所述自定义层和每个所述公共层的层参数,所述层参数包括超参和学习参数。3.根据权利要求2所述的方法,其特征在于,根据所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层,包括:获取预设层名单;根据所述预设层名单和所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层。4.根据权利要求3所述的方法,其特征在于,根据所述预设层名单和所述各个层的类型,在所述各个层中确定所述公共层和所述自定义层,包括:针对所述各个层中的任意一个层,若根据所述层的类型确定所述层属于所述预设层名单中的层,则确定所述层为所述公共层;若根据所述层的类型确定所述层不属于所述预设层名单中的层,则确定所述层为所述自定义层。5.根据权利要求1

4任一项所述的方法,其特征在于,在根据函数装饰器和捕获函数对第一模型的网络结构代码进行处理,获取所述第一模型中的公共层、自定义层、以及每个层的层参数之前,所述方法还包括:确定各所述自定义层中包括的算子位于同一个函数中。6.根据权利要求1

4任一项所述的方法,其特征在于,根据所述公共层、所述自定义层和所述每个层的层参数,生成所述第一模型的IR,包括:针对每个公共层,获取所述公共层对应的第一转换函数,并根据所述第一转换函数和所述公共层的层参数,获取所述公共层对应的IR;针对各所述自定义层,获取所述自定义层对应的第二转换函数,并根据所述第二转换函数和所述自定义...

【专利技术属性】
技术研发人员:冯仁光陈辉叶挺群
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1