(12)发明专利申请
(10)申请公布号 CN 112163677 A(43)申请公布日 2021.01.01
(21)申请号 202011096940.7(22)申请日 2020.10.14
(71)申请人 杭州海康威视数字技术股份有限公
司
地址 310051 浙江省杭州市滨江区阡陌路
555号(72)发明人 徐江川 童超 车军 任烨 (74)专利代理机构 北京三高永信知识产权代理
有限责任公司 11138
代理人 谢冬寒(51)Int.Cl.
G06N 20/00(2019.01)G06F 9/448(2018.01)
权利要求书3页 说明书13页 附图4页
(54)发明名称
应用机器学习模型的方法、装置及设备(57)摘要
本申请公开了一种应用机器学习模型的方法、装置及设备,属于机器学习技术领域。方法包括:获取目标机器学习模型的执行代码、处理类型和参数配置信息;基于处理类型,获取目标机器学习模型的未进行参数配置的输出处理函数;基于参数配置信息,对未进行参数配置的输出处理函数,进行参数配置,得到目标机器学习模型的输出处理函数;获取待输入到目标机器学习模型的目标输入数据,基于目标机器学习模型的执行代码和目标输入数据,得到目标输出数据,基于输出处理函数对目标输出数据进行处理,得到目标输入数据对应的处理结果。采用本申请可以避免因技术人员将机器学习模型和对应的参数弄混从而导致无法正常使用机器学习模型的问题。
CN 112163677 ACN 112163677 A
权 利 要 求 书
1/3页
1.一种应用机器学习模型的方法,其特征在于,所述方法包括:获取目标机器学习模型的执行代码、处理类型和参数配置信息,其中,所述参数配置信息包括预设参数的配置值;
基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输出处理函数;基于所述参数配置信息,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出处理函数;
获取待输入到所述目标机器学习模型的目标输入数据,基于所述目标机器学习模型的执行代码和所述目标输入数据,得到目标输出数据,基于所述输出处理函数对所述目标输出数据进行处理,得到所述目标输入数据对应的处理结果。
2.根据权利要求1所述的方法,其特征在于,所述获取目标机器学习模型的执行代码、处理类型和参数配置信息,包括:
获取目标机器学习模型的模型封装文件,对所述模型封装文件进行解封装处理,得到所述目标机器学习模型的执行代码、处理类型和参数配置信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输入处理函数;基于所述参数配置信息,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入处理函数;
所述基于所述目标机器学习模型的执行代码和所述目标输入数据,得到目标输出数据,包括:
基于所述输入处理函数对所述目标输入数据进行处理,得到处理后的目标输入数据,将所述处理后的目标输入数据输入到所述目标机器学习模型中,得到对应的目标输出数据。
4.根据权利要求3所述的方法,其特征在于,所述基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输入处理函数,包括:
基于所述处理类型,以及所述处理类型与所述未进行参数配置的输入处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输入处理函数;
所述基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输出处理函数,包括:
在所述模型封装文件中,获取所述目标机器学习模型的输出层标识;基于所述处理类型、所述目标机器学习模型的输出层标识,以及所述处理类型、所述输出层标识与所述未进行参数配置的输出处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输出数据处理函数。
5.根据权利要求3所述的方法,其特征在于,所述预设参数包括输入参数和输出参数;所述基于所述参数配置信息,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入处理函数,包括:
基于所述输入参数的配置值,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入数据处理函数;
所述基于所述参数配置信息,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出处理函数,包括:
2
CN 112163677 A
权 利 要 求 书
2/3页
基于所述输出参数的配置值,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出数据处理函数。
6.根据权利要求5所述的方法,其特征在于,所述基于所述输入参数的配置值,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入数据处理函数,包括:
基于预先存储的所述未进行参数配置的输入处理函数中每个输入参数的插入位,将每个输入参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输入数据处理函数;
所述基于所述输出参数的配置值,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出数据处理函数,包括:
基于预先存储的所述未进行参数配置的输出处理函数中每个输出参数的插入位,将每个输出参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输出数据处理函数。
7.根据权利要求3所述的方法,其特征在于,所述预设参数的配置值包括输入数据的分辨率以及输出数据的分辨率。
8.一种应用机器学习模型的装置,其特征在于,所述装置包括:获取模块,用于获取目标机器学习模型的执行代码、处理类型和参数配置信息,其中,所述参数配置信息包括预设参数的配置值;基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输出处理函数;
配置模块,用于基于所述参数配置信息,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出处理函数;
处理模块,用于获取待输入到所述目标机器学习模型的目标输入数据,基于所述目标机器学习模型的执行代码和所述目标输入数据,得到目标输出数据,基于所述输出处理函数对所述目标输出数据进行处理,得到所述目标输入数据对应的处理结果。
9.根据权利要求8所述的装置,其特征在于,获取模块,用于:获取目标机器学习模型的模型封装文件,对所述模型封装文件进行解封装处理,得到所述目标机器学习模型的执行代码、处理类型和参数配置信息。
10.根据权利要求9所述的装置,其特征在于,所述获取模块还用于:基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输入处理函数;所述配置模块还用于:基于所述参数配置信息,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入处理函数;
所述处理模型还用于:基于所述输入处理函数对所述目标输入数据进行处理,得到处理后的目标输入数据,将所述处理后的目标输入数据输入到所述目标机器学习模型中,得到对应的目标输出数据。
11.根据权利要求10所述的装置,其特征在于,所述获取模块,用于基于所述处理类型,以及所述处理类型与所述未进行参数配置的输入处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输入处理函数;
在所述模型封装文件中,获取所述目标机器学习模型的输出层标识;基于所述处理类型、所述目标机器学习模型的输出层标识,以及所述处理类型、所述输
3
CN 112163677 A
权 利 要 求 书
3/3页
出层标识与所述未进行参数配置的输出处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输出数据处理函数。
12.根据权利要求10所述的装置,其特征在于,所述预设参数包括输入参数和输出参数;
所述配置模块,用于:基于所述输入参数的配置值,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入数据处理函数;基于所述输出参数的配置值,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出数据处理函数。
13.根据权利要求12所述的装置,其特征在于,所述配置模块,用于:
基于预先存储的所述未进行参数配置的输入处理函数中每个输入参数的插入位,将每个输入参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输入数据处理函数;
基于预先存储的所述未进行参数配置的输出处理函数中每个输出参数的插入位,将每个输出参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输出数据处理函数。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至权利要求7任一项所述的应用机器学习模型的方法所执行的操作。
4
CN 112163677 A
说 明 书
应用机器学习模型的方法、装置及设备
1/13页
技术领域
[0001]本申请涉及机器学习技术领域,特别涉及一种应用机器学习模型的方法、装置、设备。
背景技术
[0002]随着机器学习技术的不断发展,机器学习技术的应用场景和应用平台越来越多,通过机器学习技术可实现的功能越来越多,例如,人脸识别、语音识别等。其中,上述各种功能可以通过经过训练之后的机器学习模型实现。[0003]技术人员在使用机器学习模型之前,需要根据机器学习模型对应的参数编写与机器学习模型相关的输出处理函数,例如,根据机器学习模型的处理类型等编写对应的输出处理函数。其中,输出处理函数用于根据机器学习模型输出向量确定输入到机器学习模型中的数据对应的处理结果,例如,根据分类模型输出的由各个类别对应的置信度组成的向量确定分类模型对输入数据的分类结果。[0004]在实现本申请的过程中,发明人发现相关技术至少存在以下问题:[0005]不同的机器学习模型可以对应不同的参数,当技术人员使用的机器学习模型较多时,很容易将机器学习模型和对应的参数弄混,从而导致技术人员根据参数编写的输出处理函数与机器学习模型不匹配,从而无法正常使用机器学习模型。发明内容
[0006]本申请实施例提供了一种应用机器学习模型的方法、装置及设备,可以避免因技术人员将机器学习模型和对应的参数弄混从而导致无法正常使用机器学习模型的问题。所述技术方案如下:[0007]一方面,提供了一种应用机器学习模型的方法,所述方法包括:[0008]获取目标机器学习模型的执行代码、处理类型和参数配置信息,其中,所述参数配置信息包括预设参数的配置值;[0009]基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输出处理函数;
[0010]基于所述参数配置信息,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出处理函数;
[0011]获取待输入到所述目标机器学习模型的目标输入数据,基于所述目标机器学习模型的执行代码和所述目标输入数据,得到目标输出数据,基于所述输出处理函数对所述目标输出数据进行处理,得到所述目标输入数据对应的处理结果。[0012]可选的,所述获取目标机器学习模型的执行代码、处理类型和参数配置信息,包括:
[0013]获取目标机器学习模型的模型封装文件,对所述模型封装文件进行解封装处理,得到所述目标机器学习模型的执行代码、处理类型和参数配置信息。
5
CN 112163677 A[0014][0015]
说 明 书
2/13页
可选的,所述方法还包括:基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输入处理函
数;
基于所述参数配置信息,对所述未进行参数配置的输入处理函数,进行参数配置,
得到所述目标机器学习模型的输入处理函数;
[0017]所述基于所述目标机器学习模型的执行代码和所述目标输入数据,得到目标输出数据,包括:
[0018]基于所述输入处理函数对所述目标输入数据进行处理,得到处理后的目标输入数据,将所述处理后的目标输入数据输入到所述目标机器学习模型中,得到对应的目标输出数据。
[0019]可选的,所述基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输入处理函数,包括:
[0020]基于所述处理类型,以及所述处理类型与所述未进行参数配置的输入处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输入处理函数;
[0021]所述基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输出处理函数,包括:
[0022]在所述模型封装文件中,获取所述目标机器学习模型的输出层标识;[0023]基于所述处理类型、所述目标机器学习模型的输出层标识,以及所述处理类型、所述输出层标识与所述未进行参数配置的输出处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输出数据处理函数。[0024]可选的,所述预设参数包括输入参数和输出参数;[0025]所述基于所述参数配置信息,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入处理函数,包括:[0026]基于所述输入参数的配置值,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入数据处理函数;[0027]所述基于所述参数配置信息,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出处理函数,包括:[0028]基于所述输出参数的配置值,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出数据处理函数。[0029]可选的,所述基于所述输入参数的配置值,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入数据处理函数,包括:
[0030]基于预先存储的所述未进行参数配置的输入处理函数中每个输入参数的插入位,将每个输入参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输入数据处理函数;
[0031]所述基于所述输出参数的配置值,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出数据处理函数,包括:
[0032]基于预先存储的所述未进行参数配置的输出处理函数中每个输出参数的插入位,将每个输出参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输出数据处
[0016]
6
CN 112163677 A
说 明 书
3/13页
理函数。
[0033]可选的,所述预设参数的配置值包括输入数据的分辨率以及输出数据的分辨率。[0034]另一方面,提供了一种应用机器学习模型的装置,所述装置包括:[0035]获取模块,用于获取目标机器学习模型的执行代码、处理类型和参数配置信息,其中,所述参数配置信息包括预设参数的配置值;基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输出处理函数;[0036]配置模块,用于基于所述参数配置信息,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出处理函数;[0037]处理模块,用于获取待输入到所述目标机器学习模型的目标输入数据,基于所述目标机器学习模型的执行代码和所述目标输入数据,得到目标输出数据,基于所述输出处理函数对所述目标输出数据进行处理,得到所述目标输入数据对应的处理结果。[0038]可选的,获取模块,用于:
[0039]获取目标机器学习模型的模型封装文件,对所述模型封装文件进行解封装处理,得到所述目标机器学习模型的执行代码、处理类型和参数配置信息。[0040]可选的,所述获取模块还用于:[0041]基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输入处理函数;
[0042]所述配置模块还用于:基于所述参数配置信息,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入处理函数;[0043]所述处理模型还用于:基于所述输入处理函数对所述目标输入数据进行处理,得到处理后的目标输入数据,将所述处理后的目标输入数据输入到所述目标机器学习模型中,得到对应的目标输出数据。[0044]可选的,所述获取模块,用于[0045]基于所述处理类型,以及所述处理类型与所述未进行参数配置的输入处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输入处理函数;
[0046]在所述模型封装文件中,获取所述目标机器学习模型的输出层标识;[0047]基于所述处理类型、所述目标机器学习模型的输出层标识,以及所述处理类型、所述输出层标识与所述未进行参数配置的输出处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输出数据处理函数。[0048]可选的,所述预设参数包括输入参数和输出参数;[0049]所述配置模块,用于:基于所述输入参数的配置值,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入数据处理函数;基于所述输出参数的配置值,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出数据处理函数。[0050]可选的,所述配置模块,用于:
[0051]基于预先存储的所述未进行参数配置的输入处理函数中每个输入参数的插入位,将每个输入参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输入数据处理函数;
7
CN 112163677 A[0052]
说 明 书
4/13页
基于预先存储的所述未进行参数配置的输出处理函数中每个输出参数的插入位,
将每个输出参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输出数据处理函数。
[0053]再一方面,提供了一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上所述的应用机器学习模型的方法所执行的操作。[0054]再一方面,提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的应用机器学习模型的方法所执行的操作。
[0055]本申请实施例提供的技术方案带来的有益效果是:[0056]本申请在获取到目标机器学习模型的执行代码、处理类型和参数配置信息之后,可以根据处理类型确定目标机器学习模型对应的未进行参数配置的输出处理函数,然后根据参数配置信息对未进行参数配置的输出处理函数进参数配置,得到目标机器学习模型的输出处理函数,最后通过输出处理函数对目标机器学习模型输出的数据进行处理,可以直接得到目标输入数据对应的处理结果,由于目标机器学习模型的执行代码、处理类型和参数配置信息的获取,以及输出处理函数的配置是由执行设备自动执行完成的,整个过程不需要技术人员参与,因此本申请可以避免因技术人员将机器学习模型和对应的参数弄混从而导致无法正常使用机器学习模型的问题。
附图说明
[0057]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0058]图1是本申请实施例提供的应用机器学习模型的方法流程图;[0059]图2是本申请实施例提供的应用机器学习模型的方法示意图;
[0060]图3是本申请实施例提供的应用机器学习模型的装置结构示意图;[0061]图4是本申请实施例提供的终端结构示意图。
具体实施方式
[0062]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0063]本申请实施例提供的应用机器学习模型的方法,可以由终端实现,该终端可以是手机、平板电脑、笔记本电脑、台式机等智能设备。该设备可具备处理器和存储器,其中存储器可以存储应用机器学习模型的方法对应的执行程序以及执行数据等,处理器可以执行存储器中存储的执行程序对执行数据进行处理等,以实现本申请实施例提供的应用机器学习模型的方法。
[0064]机器学习模型在完成训练之后,可以文件的形式进行存储。开发机器学习模型的技术厂商,可以将训练完成的机器学习模型提供给其他厂商或其他部门的技术人员,其他
8
CN 112163677 A
说 明 书
5/13页
厂商或其他部门的技术人员可以在训练完成的机器学习模型实现的功能的基础上,设置其他功能。例如,机器学习模型为性别识别模型,其他厂商可以根据性别识别模型识别通过用户的人脸图像识别到用户的性别,可以给对应用户进行针对性别的美颜。本申请实施例提供的应用机器学习模型的方法可以使其他厂商或其他部门的技术人员在获取到机器学习模型之后,无需对机器学习模型相关的参数进行配置,可以直接应用机器学习模型。[0065]图1是本申请实施例提供的一种应用机器学习模型的方法流程图。参见图1,该实施例包括:
[0066]步骤101、获取目标机器学习模型的执行代码、处理类型和参数配置信息,其中,参数配置信息包括预设参数的配置值。[0067]其中,目标机器学习模型可以是任一训练之后的机器学习模型,例如人脸检测模型、图像分类模型等等。目标机器学习模型的执行代码即为训练之后的机器学习模型对应程序的执行代码,处理类型为目标机器学习模型的任务类型,例如人脸检测任务、目标分类任务等,参数配置信息包括目标机器学习模型对应的输出处理函数中输出参数的参数值,例如,图像处理模型对应的输出处理函数可以将图像处理模型输出的图像处理为预设的分辨率,则参数值可以是数据分辨率(图像分辨率);分类模型对应的输出处理函数可以根据分类模型可识别类别的个数对分类模型输出的各个类别以及对应的置信度进行处理,得到分类模型的分类结果,则参数值可以是可识别类别的个数;语义分割模型对应的输出处理函数可以根据语义分割模型输出的待分割图像的各个像素对应图像类别的概率组成预设尺寸的矩阵,然后可以根据预设尺寸的矩阵对待分割图像进行分割处理,则参数值可以是数据尺寸(矩阵的预设尺寸)等。[0068]可选的,目标机器学习模型的执行代码、处理类型和参数配置信息可以封装在一个文件中,技术人员可以通过获取目标机器学习模型的模型封装文件,对模型封装文件进行解封装处理,得到目标机器学习模型的执行代码、处理类型和参数配置信息。[0069]在实施中,目标机器学习模型的处理类型和参数配置信息可以设置在一个加密的二进制文件中,应用目标机器学习模型的用户或技术人员可以通过获取该二进制文件,以获取目标机器学习模型的处理类型和参数配置信息。该二进制文件可以由开发目标机器学习模型的人员提供给应用目标机器学习模型的用户或技术人员。应用目标机器学习模型的技术人员在获取加密的二进制文件后,可以对该加密的二进制文件进行解密并解封装,得到目标机器学习模型的执行代码、处理类型和参数配置信息等。[0070]其中该二进制文件的生成过程可如下:
[0071]获取训练之后的目标机器学习模型对应的模型文件,模型文件可以为记录目标机器学习模型对应的执行代码的文件。并获取目标机器学习模型对应的模型配置文件,在模型配置文件中可以包括辅助推理信息、业务应用信息,以及绑定嵌入信息等。其中,辅助推理信息中可以包括输入到目标机器学习模型的数据对应的参数值,例如输入到目标机器学习模型中的数据的分辨率(图像的分辨率)、数据的尺寸、数据的类型等。即目标机器学习模型的还可以对应有输入处理函数,输入处理函数可以根据辅助推理信息中输入参数的参数值,将待输入到目标机器学习模型的数据调整为目标机器学习模型可处理的分辨率、尺寸和类型等。业务应用信息中可以包括输出参数的参数值,例如输出数据的分辨率、输出数据的尺寸、可识别类别的个数等等,业务应用信息中还可以包括处理类型、运行平台类型以及
9
CN 112163677 A
说 明 书
6/13页
输出层标识等。绑定嵌入信息中可以包括与模型相关的一些描述信息,模型的ID(Identity document,序列号),模型的版本号、模型的开发者信息等,在对应的机器学习模型出现异常时,可以根据绑定嵌入信息进行错误排查,例如根据模型的ID、模型的版本号等确定模型是否正确,或者根据模型的开发者信息,与开发者进行联系进行错误排查等。其中,参数配置信息为业务应用信息中输出处理函数对应的参数值,另外也可以包括辅助推理信息中对应的参数值。技术人员可以将目标机器学习模型的辅助推理信息、业务应用信息,以及绑定嵌入信息按照预设格式写在文本文件中,例如可以是txt、json、xml等文本格式。然后可以按照对应关系,将文本文件中的辅助推理信息、业务应用信息,以及绑定嵌入信息等转为结构化数据。例如,文本文件可以记录“输入分辨率:224*224”、“输入数据类型:unsigned char”、“模型任务类型:检测”、“检测类别:人脸”、“输出层位置:最后一层”、“模型提供者:XXX”、“模型ID:Face_det”,则对应的结构化数据可以为:[0072]InputShape:{1,3,1,224,224};[0073]InputDataType:U08;[0074]taskType:DETCTION;[0075]categoryInfo:FACE;[0076]layerPosition:-1;[0077]modelAuthor:“XXX”;[0078]modelld:“Face_det”;
[0079]技术人员可以将对应的模型文件以及模型配置文件对应的结构化数据通过现有的封装协议进行封装,得到封装之后的文件,然后封装之后的文件进行加密处理,例如通过AES算法、SM4算法、3DES算法等,得到加密的二进制文件。[0080]步骤102、基于处理类型,获取目标机器学习模型的未进行参数配置的输出处理函数。
[0081]其中,输出处理函数即为对机器学习模型的输出向量进行处理的函数,由于一般机器学习模型输出的值为向量,并不能直接进行应用,一般还会设置有对机器学习模型的输出数据进行处理的输出处理函数。例如机器学习模型为年龄识别模型,向年龄识别模型中输入一张人脸图像之后,年龄识别模型会输出每个年龄值以及每个年龄值对应的置信度组成的向量,然后将对应的向量输入到对应的输出处理函数中,由输出处理函数得到最终由年龄识别模型识别的人脸图像对应的年龄值。未进行参数配置的输出处理函数即还没有设置对应处理参数的参数值的输出处理函数,其中输出处理函数对应的参数可以包括机器学习模型输出的数据分辨率、可识别类别的个数等。并且对于具有相同处理任务的机器学习模型,可以对应的相同的未进行参数配置的输出处理函数,可以对应不同的处理参数。例如,不同的分别模型可识别的类别的个数不同,则对应的需要进行计算的置信度不同,则对应的参数可以是分别模型可识别的类别的个数。[0082]在实施中,在模型配置文件中记录有目标机器学习模型的处理类型,其中处理类型可以分为模型任务和检测类别等,例如模型任务可是检测任务,检测类别可以是人脸,也就是机器学习模型的处理类别为人脸检测。终端在获取到目标机器学习的处理类别之后,可以根据处理类别确定对应的输出处理函数。另外,在模型配置文件中还可以包括目标机器学习模型对应的运行平台的标识信息,其中,运行平台可以是GPU(Graphics Processing
10
CN 112163677 A
说 明 书
7/13页
Unit,图形处理器)、ARM(Advanced RISC Machine,精简指令集机器)、HISI(hisilicon,一种处理器)等。运行平台的标识信息可以指示目标机器学习模型运行的平台。[0083]可选的,目标机器学习模型的还可以对应有未进行参数配置的输入处理函数,可以基于处理类型,获取目标机器学习模型的未进行参数配置的输入处理函数。[0084]其中,输入处理函数即为对待输入的数据进行处理的函数,由于一般机器学习模型输入的数据格式,例如数据的分辨率、数据类型等都是固定的,可以由训练机器学习模型的技术人员设置。所以在将待目标机器学习模型处理的数据输入到目标机器学习模型之前,可以将待输入的数据通过输入处理函数进行处理,使待输入的数据能够满足目标机器学习模型的输入数据的数据格式。例如对待输入到图像识别模型中的图像进行处理,将待输入的图像调整至预设的图像尺寸等。另外,无论是图像识别模型还是语音识别模型等,都需要图像、语音等数据解码为二进制的编码,然后需要将二进制的编码转化为固定尺寸的输入向量等,通过输入处理函数可以将二进制的编码处理为固定尺寸的输入矩阵。未进行参数配置的输入处理函数即还没有设置对应处理参数的参数值的输入处理函数,其中处理参数为机器学习模型接收输入的数据类型、图像的分辨率、输入矩阵的尺寸等等。并且对于具有相同处理任务的机器学习模型,可以对应的相同的未进行参数配置的输入处理函数,但可以对应不同的参数值。[0085]在实施中,在模型配置文件中记录有目标机器学习模型的处理类型,其中处理类型可以分为模型任务和检测类别等,例如模型任务可是检测任务,检测类别可以是人脸,也就是机器学习模型的处理类别为人脸检测。终端在获取到目标机器学习的处理类别之后,可以根据处理类别确定对应的输入处理函数。[0086]可选的,对于输入处理函数,可以基于处理类型,以及处理类型与未进行参数配置的输入处理函数的对应关系,在预设的函数库中获取目标机器学习模型的未进行参数配置的输入处理函数;
[0087]当终端从模型配置文件中获取目标机器学习模型的处理类型之后,可以根据预先存储处理类型与未进行参数配置的输入处理函数的对应关系,确定目标机器学习模型对应的未进行参数配置的输入处理函数。[0088]可选的,可以在所述模型封装文件中,获取所述目标机器学习模型的输出层标识,对于输出处理函数,可以基于处理类型、目标机器学习模型的输出层标识,以及处理类型、输出层标识与未进行参数配置的输出处理函数的对应关系,在预设的函数库中获取目标机器学习模型的未进行参数配置的输出数据处理函数。
[0089]在机器学习模型中可以具有多层神经卷积网络,每一层神经卷积网络的输出可以是下一层神经卷积网络的输入,而不同神经卷积网络输出的数据可实现的功能可以不同。例如,在年龄性别检测模型中,对应性别的检测和年龄检测可以通过不同的神经卷积网络输出的向量确定。例如性别的检测可以通过年龄性别检测模型中倒数第二个神经卷积网络输出的数据实现,年龄的检测可以通过年龄性别检测模型中最后一个神经卷积网络输出的数据实现。不同的神经卷积网络即为不同的输出层,所以不同的输出层可以对应不同的输出处理函数。不同的输出处理函数对神经卷积网络输出的数据进行处理,可以实现不同的功能。当终端从模型封装文件解封装之后的模型配置文件中获取模型的处理类别,以及目标机器学习模型的输出层标识之后,可以根据预先设定的处理类型、输出层标识与未进行
11
CN 112163677 A
说 明 书
8/13页
参数配置的输出处理函数的对应关系,在预设的函数库中查找对应的目标机器学习模型的未进行参数配置的输出数据处理函数。[0090]步骤103、基于参数配置信息,对未进行参数配置的输出数据处理函数,进行参数配置,得到目标机器学习模型的输出数据处理函数。[0091]其中,参数配置信息中包括预设参数的配置值,预设参数包括输出参数。[0092]在实施中,可以基于输出参数的配置值,对未进行参数配置的输出处理函数,进行参数配置,得到目标机器学习模型的输出处理函数。
[0093]可以基于预先存储的未进行参数配置的输出处理函数中每个输出参数的插入位,将每个输出参数的配置值,插入对应的插入位,得到目标机器学习模型的输出数据处理函数。
[0094]在实施中,每个参数的配置值可以对应有参数名,例如Output Size:200*200,则参数为200*200,参数名为Output Size,在终端可以存储参数名与输出处理函数对应的代码中待插入参数的位置(即插入位)的对应关系,在终端获取到输出参数的配置值之后,可以将每个输出参数的配置值插入到对应的输出处理函数的插入位,得到目标机器学习模型的对应的输出数据处理函数。[0095]可选的,参数配置信息中包括预设参数的配置值,预设参数除包括输出参数之外,还可以包括输入参数。
[0096]可以基于输入参数的配置值,对未进行参数配置的输入处理函数,进行参数配置,得到目标机器学习模型的输入数据处理函数,然后可以基于预先存储的未进行参数配置的输入处理函数中每个输入参数的插入位,将每个输入参数的配置值,插入对应的插入位,得到目标机器学习模型的输入数据处理函数;[0097]在实施中,每个参数的配置值可以对应有参数名,例如Input Size:200*200,则参数为200*200,参数名为Input Size,在终端可以存储参数名与对应的输入处理函数对应的代码中待插入参数的位置(即插入位)的对应关系,在终端获取到输入参数的配置值之后,可以将每个输入参数的配置值插入到对应的输入处理函数的插入位,得到目标机器学习模型的对应的输入数据处理函数。[0098]步骤104、获取待输入到目标机器学习模型的目标输入数据,基于目标机器学习模型的执行代码和目标输入数据,得到目标输出数据,基于输出数据处理函数对目标输出数据进行处理,得到目标输入数据对应的处理结果。[0099]在实施中,得到目标机器学习模型的输出处理函数之后,可以将目标输入数据输入到目标机器学习模型中,由目标机器学习模型输出与目标输入数据对应的目标输出数据。然后再根据目标机器学习模型的输出处理函数对目标输出数据进行处理,得到目标机器学习模型对目标输入数据的处理结果。[0100]可选的,当目标机器学习模型存在输入处理函数时,相应的处理可以如下:基于输入处理函数对目标输入数据进行处理,得到处理后的目标输入数据,将处理后的目标输入数据输入到目标机器学习模型中,得到对应的目标输出数据,基于输出数据处理函数对目标输出数据进行处理,得到目标输入数据对应的处理结果。[0101]在实施中,在配置完目标机器学习模型的输入处理函数和输出处理函数之后,如图2所示,可以根据函数库中确定的未进行参数配置的输入处理函数与参数配置信息中的
12
CN 112163677 A
说 明 书
9/13页
输入参数组成的输入处理函数对待输入到目标机器学习模型的目标输入数据进行处理,得到处理后的目标输入数据,然后将处理后的目标输入数据输入到目标机器学习模型中,得到对应的目标输出数据,再然后根据函数库中确定的未进行参数配置的输出处理函数与参数配置信息中的输出参数组成的输出处理函数对目标输出数据进行处理,得到目标输入数据对应的处理结果。
[0102]本申请在获取到目标机器学习模型的执行代码、处理类型和参数配置信息之后,可以根据处理类型确定目标机器学习模型对应的未进行参数配置的输出处理函数,然后根据参数配置信息对未进行参数配置的输出处理函数进参数配置,得到目标机器学习模型的输出处理函数,最后通过输出处理函数对目标机器学习模型输出的数据进行处理,可以直接得到目标输入数据对应的处理结果,由于目标机器学习模型的执行代码、处理类型和参数配置信息的获取,以及输出处理函数的配置是由执行设备自动执行完成的,整个过程不需要技术人员参与,因此本申请可以避免因技术人员将机器学习模型和对应的参数弄混从而导致无法正常使用机器学习模型的问题。[0103]上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
[0104]图3为本申请实施例提供的一种应用机器学习模型的装置,该装置可以是上述实施例中的终端,该装置包括:[0105]获取模块310,用于获取目标机器学习模型的执行代码、处理类型和参数配置信息,其中,所述参数配置信息包括预设参数的配置值;基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输出处理函数;[0106]配置模块320,用于基于所述参数配置信息,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出处理函数;[0107]处理模块330,用于获取待输入到所述目标机器学习模型的目标输入数据,基于所述目标机器学习模型的执行代码和所述目标输入数据,得到目标输出数据,基于所述输出处理函数对所述目标输出数据进行处理,得到所述目标输入数据对应的处理结果。[0108]可选的,获取模块310,用于:
[0109]获取目标机器学习模型的模型封装文件,对所述模型封装文件进行解封装处理,得到所述目标机器学习模型的执行代码、处理类型和参数配置信息。[0110]可选的,所述获取模块310还用于:[0111]基于所述处理类型,获取所述目标机器学习模型的未进行参数配置的输入处理函数;
[0112]所述配置模块320还用于:基于所述参数配置信息,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入处理函数;[0113]所述处理模型320还用于:基于所述输入处理函数对所述目标输入数据进行处理,得到处理后的目标输入数据,将所述处理后的目标输入数据输入到所述目标机器学习模型中,得到对应的目标输出数据。[0114]可选的,所述获取模块310,用于[0115]基于所述处理类型,以及所述处理类型与所述未进行参数配置的输入处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输入处理函
13
CN 112163677 A
说 明 书
10/13页
数;
在所述模型封装文件中,获取所述目标机器学习模型的输出层标识;
[0117]基于所述处理类型、所述目标机器学习模型的输出层标识,以及所述处理类型、所述输出层标识与所述未进行参数配置的输出处理函数的对应关系,在预设的函数库中获取所述目标机器学习模型的未进行参数配置的输出数据处理函数。[0118]可选的,所述预设参数包括输入参数和输出参数;[0119]所述配置模块320,用于:基于所述输入参数的配置值,对所述未进行参数配置的输入处理函数,进行参数配置,得到所述目标机器学习模型的输入数据处理函数;基于所述输出参数的配置值,对所述未进行参数配置的输出处理函数,进行参数配置,得到所述目标机器学习模型的输出数据处理函数。[0120]可选的,所述配置模块320,用于:
[0121]基于预先存储的所述未进行参数配置的输入处理函数中每个输入参数的插入位,将每个输入参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输入数据处理函数;
[0122]基于预先存储的所述未进行参数配置的输出处理函数中每个输出参数的插入位,将每个输出参数的配置值,插入对应的插入位,得到所述目标机器学习模型的输出数据处理函数。
[0123]需要说明的是:上述实施例提供的应用机器学习模型的装置在进行机器学习模型应用时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用机器学习模型的装置与应用机器学习模型的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。[0124]图4示出了本申请一个示例性实施例提供的终端400的结构框图。该终端400可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端400还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。[0125]通常,终端400包括有:处理器401和存储器402。[0126]处理器401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
[0127]存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可
14
[0116]
CN 112163677 A
说 明 书
11/13页
以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器401所执行以实现本申请中方法实施例提供的应用机器学习模型的方法。[0128]在一些实施例中,终端400还可选包括有:外围设备接口403和至少一个外围设备。处理器401、存储器402和外围设备接口403之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口403相连。具体地,外围设备包括:射频电路404、触摸显示屏405、摄像头406、音频电路407、定位组件408和电源409中的至少一种。[0129]外围设备接口403可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器401和存储器402。在一些实施例中,处理器401、存储器402和外围设备接口403被集成在同一芯片或电路板上;在一些其他实施例中,处理器401、存储器402和外围设备接口403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0130]射频电路404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
[0131]显示屏405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏405是触摸显示屏时,显示屏405还具有采集在显示屏405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器401进行处理。此时,显示屏405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏405可以为一个,设置终端400的前面板;在另一些实施例中,显示屏405可以为至少两个,分别设置在终端400的不同表面或呈折叠设计;在再一些实施例中,显示屏405可以是柔性显示屏,设置在终端400的弯曲表面上或折叠面上。甚至,显示屏405还可以设置成非矩形的不规则图形,也即异形屏。显示屏405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
[0132]摄像头组件406用于采集图像或视频。可选地,摄像头组件406包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不
15
CN 112163677 A
说 明 书
12/13页
同色温下的光线补偿。
[0133]音频电路407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器401进行处理,或者输入至射频电路404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器401或射频电路404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路407还可以包括耳机插孔。
[0134]定位组件408用于定位终端400的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件408可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
[0135]电源409用于为终端400中的各个组件进行供电。电源409可以是交流电、直流电、一次性电池或可充电电池。当电源409包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。[0136]在一些实施例中,终端400还包括有一个或多个传感器410。该一个或多个传感器410包括但不限于:加速度传感器411、陀螺仪传感器412、压力传感器413、指纹传感器414、光学传感器415以及接近传感器416。[0137]加速度传感器411可以检测以终端400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器411可以用于检测重力加速度在三个坐标轴上的分量。处理器401可以根据加速度传感器411采集的重力加速度信号,控制触摸显示屏405以横向视图或纵向视图进行用户界面的显示。加速度传感器411还可以用于游戏或者用户的运动数据的采集。[0138]陀螺仪传感器412可以检测终端400的机体方向及转动角度,陀螺仪传感器412可以与加速度传感器411协同采集用户对终端400的3D动作。处理器401根据陀螺仪传感器412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
[0139]压力传感器413可以设置在终端400的侧边框和/或触摸显示屏405的下层。当压力传感器413设置在终端400的侧边框时,可以检测用户对终端400的握持信号,由处理器401根据压力传感器413采集的握持信号进行左右手识别或快捷操作。当压力传感器413设置在触摸显示屏405的下层时,由处理器401根据用户对触摸显示屏405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
[0140]指纹传感器414用于采集用户的指纹,由处理器401根据指纹传感器414采集到的指纹识别用户的身份,或者,由指纹传感器414根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器401授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器414可以被设置终端400的正面、背面或侧面。当终端400上设置有物理按键或厂商Logo时,指纹传感器414可以与物理按键或厂商Logo集成在一起。
16
CN 112163677 A[0141]
说 明 书
13/13页
光学传感器415用于采集环境光强度。在一个实施例中,处理器401可以根据光学
传感器415采集的环境光强度,控制触摸显示屏405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏405的显示亮度;当环境光强度较低时,调低触摸显示屏405的显示亮度。在另一个实施例中,处理器401还可以根据光学传感器415采集的环境光强度,动态调整摄像头组件406的拍摄参数。[0142]接近传感器416,也称距离传感器,通常设置在终端400的前面板。接近传感器416用于采集用户与终端400的正面之间的距离。在一个实施例中,当接近传感器416检测到用户与终端400的正面之间的距离逐渐变小时,由处理器401控制触摸显示屏405从亮屏状态切换为息屏状态;当接近传感器416检测到用户与终端400的正面之间的距离逐渐变大时,由处理器401控制触摸显示屏405从息屏状态切换为亮屏状态。[0143]本领域技术人员可以理解,图4中示出的结构并不构成对终端400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。[0144]在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中应用机器学习模型的方法。该计算机可读存储介质可以是非暂态的。例如,所述计算机可读存储介质可以是ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM、磁带、软盘和光数据存储设备等。
[0145]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。[0146]以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
17
CN 112163677 A
说 明 书 附 图
1/4页
图1
18
CN 112163677 A
说 明 书 附 图
2/4页
图2
19
CN 112163677 A
说 明 书 附 图
3/4页
图3
20
CN 112163677 A
说 明 书 附 图
4/4页
图4
21
因篇幅问题不能全部显示,请点此查看更多更全内容