机器学习二级模型文件生成方法、装置、存储介质与流程

文档序号:21041031发布日期:2020-06-09 20:40阅读:186来源:国知局
机器学习二级模型文件生成方法、装置、存储介质与流程

本申请涉及人工智能技术领域,特别是涉及一种机器学习二级模型文件方法、装置、计算机设备和存储介质。



背景技术:

随着人工智能技术的发展,出现了各种机器学习算法。传统的机器学习算法在开发平台中运行时,每次执行都要先经过编译过程。但是由于机器学习过程中,算法重复编译次数多,而编译过程耗时长,导致算法执行效率低。



技术实现要素:

基于此,有必要针对机器学习过程中,算法重复编译次数多,而编译过程耗时长,导致算法执行效率低的问题,提供一种机器学习二级模型文件生成方法、装置、计算机设备和存储介质。

一种机器学习二级模型文件的生成方法,所述机器学习二级模型文件包括二级模型和二级模型目录,所述生成方法包括:

获取通用机器学习模型;

对所述通用机器学习模型进行存储优化处理,生成所述二级模型;

计算所述二级模型的存储偏移量;

根据所述二级模型以及所述二级模型的存储偏移量,生成二级模型目录;

根据所述二级模型以及所述二级模型目录,生成机器学习二级模型文件。

在其中一个实施例中,所述对所述通用机器学习模型进行存储优化处理,生成所述二级模型的步骤包括:对所述通用机器学习模型进行压缩处理和/或加密处理,生成所述二级模型。

在其中一个实施例中,所述根据所述二级模型以及所述二级模型目录,生成机器学习二级模型文件,包括:

获取所述机器学习二级模型文件的文件头和文件尾;

根据所述文件头、所述二级模型目录、所述通用机器学习模型以及所述文件尾,生成所述机器学习二级模型文件。

在其中一个实施例中,所述计算所述二级模型的存储偏移量的步骤包括:

获取每个所述通用机器学习模型占用的存储空间大小和所述二级模型的数量;

获取所述二级模型的存放顺序;

根据每个所述二级模型占用的存储空间大小、所述二级模型的数量、所述二级模型的存放顺序,计算每个所述二级模型的存储偏移量。

在其中一个实施例中,所述根据所述通用机器学习模型以及所述模型目录,生成机器学习二级模型文件,包括:

创建机器学习二级模型文件的标识码;

根据所述模型文件的标识码、所述二级模型、所述二级模型目录,生成机器学习二级模型文件。

在其中一个实施例中,所述根据所述二级模型以及所述模型目录,生成机器学习二级模型文件,包括:

创建所述机器学习二级模型文件的校验码和/或纠错码;根据所述机器学习二级模型文件的校验码和/或纠错码、所述二级模型以及所述二级模型目录,生成机器学习二级模型文件。

一种通用机器学习模型文件生成方法,所述方法包括:

获取机器学习任务的任务参数;

对所述任务参数进行分类,生成任务指令及模型参数;

根据数据类型将所述任务指令及模型参数进行汇集,生成栈数据和堆数据;

将所述栈数据和堆数据进行整合,生成通用机器学习模型;

对所述通用机器学习模型进行存储优化处理,生成所述二级模型;计算所述二级模型的存储偏移量;

根据所述二级模型以及所述二级模型存储偏移量,生成二级模型目录;

根据所述二级模型、所述模型目录,生成机器学习二级模型文件。

一种机器学习二级模型文件的生成装置,所述机器学习二级模型文件包括二级模型和二级模型目录所述生成装置包括:

二级模型填充器、模型存储优化器、目录生成器以及文件生成器;所述模型填充器和所述目录生成器相连,所述文件生成器分别与所述模型填充器、所述目录生成器相连,所述模型存储优化器与所述模型填充器相连;

所述二级模型填充器,用于获取通用机器学习模型;

所述模型存储优化器,用于对所述通用机器学习模型进行存储优化处理,生成二级模型;

所述目录生成器用于计算所述通用机器学习模型的存储偏移量;以及根据所述二级模型以及所述二级模型存储偏移量,生成二级模型目录;

所述文件生成器用于根据所述二级模型、所述二级模型目录,生成机器学习二级模型文件。

在其中一个实施例中,所述二级模型填充器还用于将所述二级模型,按序存入所述文件生成器。

在其中一个实施例中,所述文件生成器还包括文件头生成器和所述文件尾生成器;所述文件头生成器与所述目录生成器相连,所述文件尾生成器与所述二级模型填充器相连。

在其中一个实施例中,所述文件头生成器还用于创建二级模型的标识码,以及根据所述标识码、所述二级模型、所述二级模型目录,生成机器学习二级模型文件。

在其中一个实施例中,所述文件尾生成器还用于创建所述机器学习二级模型文件的校验码和/或纠错码。

在其中一个实施例中,所述生成装置还包括文件大小计算器,所述文件大小计算器与所述目录生成器连接,用于计算所述通用机器学习模型占用的存储空间大小,以及计算所述模型文件所需占用的存储空间的大小。

在其中一个实施例中,所述文件大小计算器与模型存储优化器相连。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以上任一实施例所述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以以上任一实施例所述方法的步骤。

上述机器学习二级模型文件的生成方法、装置、计算机设备和存储介质,通过生成关于获取的二级模型的目录,并根据二级模型以及二级模型目录生成机器学习二级模型文件。实现了在机器学习运算过程中,根据运算需要直接在通用机器学习模型文件中读取对应的二级模型,避免重复编译,从而大大提高机器学习算法实现的效率,缩短了从编译到得到执行结果的时间。

附图说明

图1为一个实施例中通用机器学习模型文件生成方法的应用环境图;

图2为一个实施例中通用机器学习模型生成方法的流程示意图;

图3为一个实施例中通用机器学习模型生成装置的结构示意图;

图4为一个实施例中通用机器学习模型文件生成方法的流程示意图;

图5为一个实施例中计算所述通用机器学习模型的存储偏移量的流程示意图;

图6为一个实施例中根据所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件的流程示意图;

图7为另一个实施例中根据所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件的流程示意图;

图8为再一个实施例中根据所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件的流程示意图;

图9为又一个实施例中根据所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件的流程示意图;

图10为另一个实施例中通用机器学习模型生成方法的流程示意图;

图11为再一个实施例中通用机器学习模型生成方法的流程示意图;

图12为一个实施例中通用机器学习模型文件生成装置的结构示意图;

图13为另一个实施例中通用机器学习模型文件生成装置的结构示意图;

图14为一个实施例中通用机器学习模型解析方法的流程示意图;

图15为一个实施例中获取通用机器学习模型文件流程示意图;

图16为一个实施例中获取通用机器学习模型文件流程示意图;

图17为一个实施例中执行纠错运算流程示意图;

图18为一个实施例中根据所述模型目录,读取目标通用机器学习模型流程示意图;

图19为一个实施例中通用机器学习模型解析方法的流程示意图;

图20为另一个实施例中通用机器学习模型解析方法的流程示意图;

图21为又一个实施例中通用机器学习模型解析方法的流程示意图;

图22为一个实施例中通用机器学习模型解析装置的结构示意图;

图23为一个实施例中通用机器学习模型执行装置的结构示意图;

图24为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的通用机器学习模型文件生成方法,可以应用于如图1所示的应用环境中。本申请提供的通用机器学习模型的生成方法,可以应用于如图1所示的应用环境中。其中,图1所示的应用环境为机器学习开发平台,包括框架层101、编译层102、汇聚层103、驱动层104以及硬件层105。

在其中一个实施例中,框架层101用于提供机器学习任务的算法设计条件,为方便用户搭建自己的神经网络结构,提供便捷的训练和预测工具。可以理解的,框架层101用于实现以下步骤:接收用户设计的机器学习算法(例如,神经网络结构);解析出每个子任务的参数,传递给编译层生成机器指令及相关必要元素;传递给运行时层执行计算,最终完成用户所需的机器学习任务。

在其中一个实施例中,编译层102用于在机器学习任务中生成机器指令。具体的,编译层包括编译器、针对高频算子做特殊优化的高性能编程库以及其他能够生成机器指令的模块、装置以及数据库。可以理解的,编译层102用于接收上层框架层101传入的机器学习任务的参数,编译生成硬件的二进制机器指令,传递给下层的运行时层保存下来或执行计算。

在其中一个实施例中,汇聚层103是对驱动程序做进一步封装的程序,可以屏蔽底层不同硬件和驱动的差异,向上层编译层102或用户提供统一的程序接口。具体的,汇聚层103封装上层软件不需考虑的硬件和驱动程序的细节。进一步的,汇聚层103用于提供机器学习任务基本操作的程序接口,保存和加载机器学习模型及其在硬件上执行所需的机器指令等必要元素,使上层软件和用户只需要关注机器学习任务本身,而不必考虑具体硬件的差异。可选地,汇聚层提供机器学习任务基本操作的程序接口包括内存空间分配、数据拷贝、启动计算以及其他机器学习任务基本操作的程序接口。

在其中一个实施例中,驱动层104用于打包封装硬件层105设备的基本操作,向上层汇聚层103提供可被调用的程序接口。具体地,驱动层104的基本操作包括控制数据流的输入输出,向硬件发送控制信号,接收与处理硬件产生的异常信号,多任务的管理和调度等。

在其中一个实施例中,硬件层105包括机器学习开发平台中的所有硬件设施。可选的硬件层105包括主处理器、协处理器、存储器,输入输出设备,供电模块以及它们的连接设备。可以理解的,硬件层105不限于上述器件。

在一个实施例中,请一并参阅图2、图3,提供了一种通用机器学习模型的生成方法及装置。在其中一个实施例中,步骤s201,获取机器学习任务的任务参数。在其中一个实施例中,通过对外接口模块31000获取机器学习任务的任务参数。具体地,任务参数是生成通用机器学习模型的除去输入数据、输出数据之外的参数。具体地,任务参数来自外部程序的输入,或者来自于用户的输入。可以理解的,当任务参数来自于用户的输入时,用户的输入数据需要经过格式转化才能生成任务参数。在其中一个实施例中,步骤s202,对所述任务参数进行分类处理,生成任务指令及模型参数。在其中一个实施例中,通过模型参数生成模块32100生成模型参数,通过任务指令生成模块32200生成任务指令。具体的,任务指令是指经过编译处理的任务参数。模型参数是指机器学习算法运行过程中所需要对任务参数进行其他处理的处理结果。

在其中一个实施例中,步骤s203,根据数据类型将所述任务指令及模型参数进行汇集,生成栈数据和堆数据。在其中一个实施例中,通过栈数据汇集器33100汇集不可共享的数据,通过堆数据汇集器33200汇集共享的数据。可以理解的,不可共享的数据是指在多核平台中,核间不共享的数据;共享的数据是指在多核平台中,核间共享的数据。具体地,汇集是指对任务指令及模型参数进行打包整理。在其中一个实施例中,步骤s204,将所述栈数据和堆数据进行整合,生成通用机器学习模型。

在一个实施例中,请一并参阅图4,通用机器学习模型文件生成方法,包括:

步骤s402,获取通用机器学习模型。可选地,通用机器学习模型可以是前述通过步骤s201~步骤s204生成的通用机器学习模型,还可以是其他模型文件。

步骤s404,计算所述通用机器学习模型的存储偏移量。具体地,通用机器学习模型可以是一个,也可以是多个。在其中一个实施例中,当通用机器学习模型为多个时,计算每个通用机器学习模型的存储偏移量。

步骤s406,根据所述通用机器学习模型以及所述通用机器学习模型存储偏移量,生成模型目录。其中,模型目录是通用机器学习模型文件中所有模型存放位置的记录,通过模型目录,可以快速索引到目标模型。

步骤s408,根据所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件。本实施例中的通用机器学习模型文件中不仅包括通用机器学习模型本身,还包括模型目录,使得在调用通用机器学习模型文件中的通用机器学习模型时,快速定位和读取对应的模型。

上述通用机器学习模型文件生成方法,通过生成关于获取的通用机器模型的目录,并根据通用机器学习模型以及模型目录生成通用机器学习模型文件。实现了在机器学习运算过程中,根据运算需要直接在通用机器学习模型文件中读取对应的通用模型,避免重复编译,从而大大提高机器学习算法实现的效率,缩短了从编译到生成执行结果的时间。

在一个实施例中,请一并参阅图5,步骤s404计算所述通用机器学习模型的存储偏移量的步骤包括:

步骤s4041,获取每个所述通用机器学习模型占用的存储空间大小和所述通用机器学习模型的数量。在其中一个实施例中,根据每个所述通用机器学习模型占用的存储空间大小和所述通用机器学习模型的数量,生成通用机器学习模型文件所要占用的存储空间大小。

步骤s4042,获取所述通用机器学习模型的存放顺序。具体地,通用机器学习模型的存放顺序可以遵循预设规则,也可以随机生成存放顺序。具体地,通用机器学习模型的存放顺序确定后,通用机器学习模型即按照确定的存放顺序进行存放。

步骤s4043,根据每个所述通用机器学习模型占用的存储空间大小、所述通用机器学习模型的数量、所述通用机器学习模型的存放顺序,计算每个所述通用机器学习模型的存储偏移量。其中,存储偏移量是指每个通用机器学习模型在通用机器学习模型文件中的存储的相对位置。例如模型a、模型b与模型c依次从文件头到文件尾存储,模型a的大小为2比特,模型b的大小为3比特,模型c的大小为1比特,则模型a的偏移量为0,模型b的偏移量为2比特,模型c的偏移量为2+3=5比特。

在其中一个实施例中,请一并参阅图6,步骤s408根据所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件包括:

步骤s408a,获取所述通用机器学习模型文件的文件头和文件尾;

步骤s408b,根据所述文件头、所述模型目录、所述通用机器学习模型以及所述文件尾,生成所述通用机器学习模型文件。其中,所述文件头是指位于通用机器学习模型文件开头的一段承担一定任务的数据,所述文件尾是指位于通用机器学习模型尾部的一段承担一定任务的数据。

在另一个实施例中,请一并参阅图7,步骤s408根据所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件包括:

步骤s408c,创建通用机器学习模型文件的标识码。具体地,通用机器学习模型文件的标识码是指通用机器学习模型文件附带的起标识作用的字符,通过文件的标识码可以将不同的通用机器学习模型文件区分开,便于准确获取对应的通用机器学习模型文件。步骤s408d根据所述标识码、所述通用机器学习模型、所述模型目录,生成通用机器学习模型文件。在其中一个实施例中,通用机器学习模型文件的标识码存放在文件头。

在再一个实施例中,请一并参阅图8,步骤s408根据所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件,包括:

步骤s408e创建所述通用机器学习模型文件的校验码和/或纠错码。其中,校验码由通用机器学习模型文件中的运算得出,用以检验该通用机器学习模型文件的正确性。在其中一个实施例中,校验码位于一个通用机器学习模型文件中的最后一位,其中,纠错码是指文件接收端,能够发现通用机器学习模型文件在传输过程中出现的错误,并进行纠正的一串字符。

通过本实施例的步骤,增加了通用机器学习模型文件接收的安全性和稳定性。当在传输过程中发送传输错误时,能够及时通过校验码发现错误,以及通过纠错码纠正错误,增加了数据的稳定性和容错性,防止因接收错误导致后续流程的相应出错。

步骤s408f,根据所述通用机器学习模型文件的校验码和/或纠错码、所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件。在其中一个实施例中,校验码和/纠错码存储在通用机器学习模型中的文件尾。

在一个实施例中,请一并参阅图9,步骤s408根据所述通用机器学习模型以及所述模型目录,生成通用机器学习模型文件还包括:

步骤s4081,计算所述通用机器学习模型文件所需占用的存储空间的大小。

在其中一个实施例中,通用机器学习模型文件包括一个或多个通用机器学习模型。在另一个实施例中,通用机器学习模型文件还包括文件头、文件尾、模型目录。可选地,通用机器学习文件还可以包括模型目录的存储空间大小以及多个通用机器学习模型的存储空间大小的加和。可选地,通用机器学习文件还可以包括文件头的存储空间大小、文件尾的存储空间大小、模型目录的存储空间大小以及多个通用机器学习模型的存储空间大小的加和。

步骤s4082,根据所述通用机器学习模型、所述通用机器学习模型文件所需占用的存储空间的大小以及所述模型目录,生成通用机器学习模型文件。在其中一个实施例中,通用机器学习模型文件模型目录、通用机器学习模型依次由文件头部到文件尾部存放。

在一个实施例中,请一并参阅图10,提供了另一种通用机器学习模型生成方法,包括:步骤s501,获取通用机器学习模型;步骤s502,对所述通用机器学习模型进行存储优化处理,生成二级模型;步骤s503,计算所述二级模型的存储偏移量;步骤s504,根据所述二级模型以及所述二级模型存储偏移量,生成二级模型目录;步骤s505,根据所述二级模型以及所述二级模型目录,生成通用机器学习模型文件。

步骤s501与上述实施例中步骤s402的执行过程相同,在此不再赘述。另外,步骤s503与步骤s404,步骤s504与步骤s406、步骤s505与步骤s408的区别在于执行对象不同,即步骤s503、步骤s504以及步骤s505的执行对象是二级模型,步骤s404、步骤s406以及步骤s408的执行对象是通用机器学习模型,两个实施例中上述对应步骤执行过程一致,在此不再赘述。

通过步骤s501~步骤s505的方法,将原始生成的通用机器学习模型进行优化处理,便于通用机器学习模型文件的存放和传输,增加了传输过程中的安全性和稳定性。

在其中一个实施例中,步骤s502,对所述通用机器学习模型进行存储优化处理,生成二级模型的步骤包括:对所述通用机器学习模型进压缩处理,生成二级模型。通过本实施例中将通用机器学习模型进行压缩,便于通用机器学习模型在通用机器学习模型文件中存储,进而便于在执行对应通用机器学习模型时快速获取对应的通用机器学习模型。

在另一个实施例中,步骤s502,对所述通用机器学习模型进行存储优化处理,生成二级模型的步骤还包括:对所述通用机器学习模型进加密处理,生成二级模型。通过本实施例中将通用机器学习模型进行加密,能够增加通用机器学习模型在存储和传输过程中的安全性。

在其中一个实施例中,所述根据所述二级模型以及所述二级模型目录,生成机器学习二级模型文件,包括:

获取所述机器学习二级模型文件的文件头和文件尾;

根据所述文件头、所述二级模型目录、所述通用机器学习模型以及所述文件尾,生成所述机器学习二级模型文件。

在其中一个实施例中,所述计算所述二级模型的存储偏移量的步骤包括:

获取每个所述通用机器学习模型占用的存储空间大小和所述二级模型的数量;

获取所述二级模型的存放顺序;

根据每个所述二级模型占用的存储空间大小、所述二级模型的数量、所述二级模型的存放顺序,计算每个所述二级模型的存储偏移量。

在其中一个实施例中,所述根据所述通用机器学习模型以及所述模型目录,生成机器学习二级模型文件,包括:

创建机器学习二级模型文件的标识码;

根据所述模型文件的标识码、所述二级模型、所述二级模型目录,生成机器学习二级模型文件。

在其中一个实施例中,所述根据所述二级模型以及所述模型目录,生成机器学习二级模型文件,包括:

创建所述机器学习二级模型文件的校验码和/或纠错码;根据所述机器学习二级模型文件的校验码和/或纠错码、所述二级模型以及所述二级模型目录,生成机器学习二级模型文件。

一种通用机器学习模型文件生成方法,所述方法包括:

获取机器学习任务的任务参数;

对所述任务参数进行分类,生成任务指令及模型参数;

根据数据类型将所述任务指令及模型参数进行汇集,生成栈数据和堆数据;

将所述栈数据和堆数据进行整合,生成通用机器学习模型;

对所述通用机器学习模型进行存储优化处理,生成所述二级模型;计算所述二级模型的存储偏移量;

根据所述二级模型以及所述二级模型存储偏移量,生成二级模型目录;

根据所述二级模型、所述模型目录,生成机器学习二级模型文件。

在又一个实施例中,请一并参阅图11,提供了又一种通用机器学习模型生成方法,包括:

步骤s601,获取机器学习任务的任务参数。具体地,任务参数是生成通用机器学习模型的除去输入数据、输出数据之外的参数。具体地,任务参数来自外部程序的输入,或者来自于用户的输入。可以理解的,当任务参数来自于用户的输入时,用户的输入数据需要经过格式转化才能生成任务参数。

步骤s602,对所述任务参数进行分类处理,生成任务指令及模型参数。具体的,任务指令是指经过编译处理的任务参数。模型参数是指机器学习算法运行过程中所需要对任务参数进行其他处理的处理结果。

步骤s603,根据数据类型将所述任务指令及模型参数进行汇集,生成栈数据和堆数据。可以理解的,不可共享的数据是指在多核平台中,核间不共享的数据;共享的数据是指在多核平台中,核间共享的数据。具体地,汇集是指对任务指令及模型参数进行打包整理。

步骤s604,将所述栈数据和堆数据进行整合,生成通用机器学习模型。具体的,通用机器学习模型具有良好的通用性。在其中一个实施例中,通用机器学习模型既兼容上层的不同框架,例如兼容上层的框架层101、编译层102以及汇聚层103;又能兼容下层的不同驱动层和硬件。进一步的,当一个通用机器学习模型形成之后,能够根据不同的运算核数量、输入数据的地址、输出数据的地址以及其他通用机器学习模型调整数据块,以适应不同的情况。

步骤s605,计算所述通用机器学习模型的存储偏移量;步骤s606,根据所述通用机器学习模型以及所述通用机器学习模型存储偏移量,生成模型目录;步骤s607,根据所述通用机器学习模型、所述模型目录,生成通用机器学习模型文件。本实施例中的步骤s605、步骤s606、步骤s607与上述实施例中的步骤s405、步骤s406、步骤s408的执行过程相同,在此不再赘述。

在一个实施例中,请一并参阅图12,提供了一种通用机器学习模型文件生成装置,包括:模型填充器701、目录生成器702以及文件生成器703;所述模型填充器701和所述目录生成器702相连,所述文件生成器703分别与所述模型填充器701、所述目录生成器702相连。具体地,所述模型填充器701用于获取所述通用机器学习模型;

所述目录生成器702用于计算所述通用机器学习模型的存储偏移量;以及根据所述通用机器学习模型以及所述通用机器学习模型存储偏移量,生成模型目录;

所述文件生成器703用于根据所述通用机器学习模型、所述模型目录,生成通用机器学习模型文件。

在一个实施例中,所述模型填充器701还用于将所述通用机器学习模型,按序存入所述文件生成器。

在一个实施例中,所述文件生成器703还包括文件头生成器7031和所述文件尾生成器7032;所述文件头生成器7031与所述目录生成器702相连,所述文件尾生成器7032与所述模型填充器701相连。在其中一个实施例中,所述文件头生成器7031还用于创建通用机器学习模型文件的标识码,以及根据所述标识码、所述通用机器学习模型、所述模型目录,生成通用机器学习模型文件。

在一个实施例中,所述文件尾生成器7032还用于创建所述通用机器学习模型文件的校验码和/或纠错码。

在一个实施例中,所述生成装置还包括模型存储优化器704,所述模型存储优化器704与所述模型填充器701相连和所述目录生成器相连,用于对所述通用机器学习模型进行存储优化处理,生成二级模型。在其中一个实施例中,二级模型填充器用于接收所述二级模型,并将所述二级模型按序存入所述文件生成器。

在一个实施例中,所述生成装置还包括文件大小计算器705,所述文件大小计算器705与所述目录生成器702连接,用于计算所述通用机器学习模型占用的存储空间大小,以及计算所述通用机器学习模型文件所需占用的存储空间的大小。

在其中一个实施例中,所述文件大小计算器705与模型存储优化器704相连。具体的,上述实施例中的连接关系包括电连接或无线连接。

在一个实施例中,一种通用机器学习模型文件生成装置,请一并参阅图13,所述生成装置包括:

对外接口模块801,用于获取机器学习任务的任务参数;

分类处理模块802,用于对所述任务参数进行分类处理,生成任务指令及模型参数;

参数汇集模块803,用于根据数据类型将所述任务指令及模型参数进行汇集,生成栈数据和堆数据;

模型生成模块804,用于将所述栈数据和堆数据进行整合,生成通用机器学习模型;

存储偏移量计算模块805,用于计算所述通用机器学习模型的存储偏移量;

模型目录生成模块806,用于根据所述通用机器学习模型以及所述通用机器学习模型存储偏移量,生成模型目录;

模型文件生成模块807,用于根据所述通用机器学习模型、所述模型目录,生成通用机器学习模型文件。

在其中一个实施例中,请一并参阅图13,通用机器学习模型生成装置与通用机器学习模型文件生成装置相连,所述通用机器学习模型文件生成装置用于将通用机器学习模型生成装置中生成的通用机器学习模型转化为通用机器学习模型文件。

关于通用机器学习模型文件生成装置的具体限定可以参见上文中对于通用机器学习模型文件生成方法的限定,在此不再赘述。上述通用机器学习模型文件生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,请一并参阅图14,提供了一种通用机器学习模型文件解析方法,包括:

步骤s701,获取通用机器学习模型文件。其中,通用机器学习模型文件包括通过步骤s402~步骤s408生成的模型文件。进一步地,通用机器学习文件中的通用机器学习模型包括通过步骤s201~步骤s204生成的通用机器学习模型。

步骤s702,在所述通用机器学习模型文件中读取模型目录。具体地,模型目录包括通过上述步骤s406生成的模型目录。

步骤s703,根据所述模型目录,读取目标通用机器学习模型。其中,所述目标通用机器学习模型是指在通用机器学习模型文件中所要取出的通用机器学习模型。目标通用机器学习模型可以根据用户操作指令确定,还可以根据任务执行需要确定。

在一个实施例中,请一并参阅图15,步骤s701,获取通用机器学习模型文件包括:

步骤s7011,获取所述通用机器学习模型文件的标识码。具体地,通用机器学习模型文件的标识码可以位于通用机器学习模型文件头,以方便对通用机器学习模型文件进行识别。具体地,通用机器学习模型文件的标识码是指通用机器学习模型文件附带的起标识作用的字符,通过识别文件的标识码可以将不同的通用机器学习模型文件区分开,便于准确获取对应的通用机器学习模型文件。进一步地,标识码可以是通过上述步骤s408c创建的通用机器学习模型文件的标识码。

步骤s7012,检测所述标识码是否符合预设规则。在其中一个实施例中,预设规则是指在读取对应的通用机器学习模型文件之前,获取的通用机器学习模型文件的标识码的描述信息。进一步地,在获取到通用机器学习模型文件之后,检测通用机器学习模型文件的标识码与描述信息是否相匹配,若匹配,则判断标识码符合预设规则,若不匹配则判断标识码符合预设规则。

步骤s7013,若所述标识码符合预设规则,则在所述通用机器学习模型文件中读取模型目录。具体地,若所述标识码符合预设规则,则可以判断所述通用机器学习模型文件在传输过程中没有发生异常。

在另一个实施例中,若标识码不符合预设规则,则获取的通用机器学习模型文件与要读取的通用机器学习模型文件不一致。具体地,若标识码不符合预设规则,则判断读取的通用机器学习模型文件发生异常,则所述通用机器学习模型文件解析方法停止执行。

在一个实施例中,请一并参阅图16,步骤s701,获取通用机器学习模型文件包括:

步骤s7014,获取所述通用机器学习模型文件的校验码。具体地,若标识码合法,则获取到的通用机器学习模型文件无误,进一步检测获取到的通用机器学习模型文件的校验码,以判断通用机器学习模型文件的内容是否无误。

步骤s7015,校验所述校验码与预设标准码是否一致,若所述校验码与预设标准码不一致,则执行纠错运算。其中,预设标准码与通用机器学习模型文件内容无误时的校验码一致。进一步地,若所得的校验码与预设标准码一致,则可以判断通用机器学习模型文件的内容无误,反之,若所得的校验码与预设标准码不一致,则可以判断通用机器学习模型文件内容有误。可选地,若通用机器学习模型文件有误,产生错误的原因可以是原始文件有误,还可以是原始文件无误但是在传输过程中发生错误。

在一个实施例中,请一并参阅图17,步骤7015校验所述校验码与预设标准码是否一致,若所述校验码与预设标准码不一致,则执行纠错运算包括:

步骤7015a,获取纠错码。其中,纠错码可以是通过上述步骤s408e得到的纠错码。具体地,错码是指文件接收端,能够发现通用机器学习模型文件在传输过程中出现的错误,并进行纠正的一串字符。

步骤7015b,根据所述纠错码对所述通用机器学习模型文件进行纠错,得到纠错后的模型文件。具体地,当文件校验码与预设标准码不一致时,判断通用机器学习模型文件内容出错后根据文件纠错码对通用机器学习模型进行纠错。具体地,纠错码可以位于通用机器学习模型文件的文件尾。

步骤7015c,校验所述纠错后的模型文件的校验码与所述预设标准码是否一致。具体地,在纠错完成后,再次校验纠错后的模型文件的校验码是否与预设标准码一致,以检测纠错效果。

步骤7015d,若所述纠错后的通用机器学习模型文件的校验码与所述预设标准码一致,则在所述通用机器学习模型文件中读取模型目录。可以理解地,若纠错后的通用机器学习模型文件的校验码与预设标准码一致,则可判断纠错后的通用机器学习模型已经无误。

在另一个实施例中,所述通用机器学习模型文件解析方法还包括:若所述纠错后的通用机器学习模型文件的校验码与所述预设标准码不一致,则所述方法停止执行。可以理解地,纠错后的通用机器学习模型文件的校验码与预设标准码仍不一致,则可判断纠错失败,纠错后的通用机器学习模型仍有误。

在一个实施例中,请一并参阅图18,步骤s703,根据所述模型目录,读取目标通用机器学习模型包括:

步骤s7031,获取目标通用机器学习模型的在所述通用机器学习模型文件中的存储偏移量。其中,存储偏移量是指每个通用机器学习模型在通用机器学习模型文件中的存储的相对位置。例如模型a、模型b与模型c依次从文件头到文件尾存储,模型a的大小为2比特,模型b的大小为3比特,模型c的大小为1比特,则模型a的偏移量为0,模型b的偏移量为2比特,模型c的偏移量为2+3=5比特。

步骤s7032,根据所述存储偏移量,读取所述目标通用机器学习模型。在其中一个实施例中,根据存储偏移量,得到目标通用机器学习模型在目标通用机器学习模型文件的位置,进一步地根据目标通用机器学习模型文件的位置读取目标通用机器学习模型。

在一个实施例中,请一并参阅图19,提供了一种通用机器学习模型文件解析方法,包括:

步骤s801,获取通用机器学习模型文件。具体地,步骤s801的执行过程与上述步骤s701的步骤相同,在此不再赘述。

步骤s802,在所述通用机器学习模型文件中读取二级模型目录。具体地,在本实施了中通用机器学习模型文件中存储的是二级模型文件。具体地,本实施例中的二级模型以及二级模型目录可以上述通过步骤s501~步骤s505生成。

步骤s803,根据所述二级模型目录,读取目标二级模型。在其中一个实施例中,获取目标二级模型的在所述通用机器学习模型文件中的存储偏移量;根据所述存储偏移量,读取所述目标二级模型。其中,目标二级模型是指在通用机器学习模型文件中所要取出的通用机器学习模型。

步骤s804,对所述目标二级模型进行还原得到目标通用机器学习模型。具体地,二级模型是经过存储优化处理的通用机器学习模型。在其中一个实施例中,根据存储优化处理的操作对二级模型进行还原。例如,若存储优化处理是加密,则还原操作是对二级模型进行解密;又例如,若存储优化处理是压缩,则还原操作是对二级模型进行解压缩。可以理解地,若存储优化处理是加密以及压缩,则还原操作是解密以及解压缩。

在一个实施例中,请一并参阅图20,通用机器学习模型文件解析方法还包括:

步骤s901,读取所述通用机器学习模型中的硬件参数信息。具体地,硬件参数信息是指,执行通用机器学习模型时所需要的硬件信息。

步骤s902,根据所述硬件参数信息,生成硬件匹配信息。具体地,根据硬件参数信息,在设备池中匹配与符合硬件参数信息的硬件。在其中一个实施例中,设备池可以是不同硬件平台中的设备,通过在设备池中匹配硬件参数信息使得通用机器学习模型的解析过程或执行过程能够跨平台实现。例如,根据硬件参数信息一个通用机器学习模型文件需要一个cpu和一个gpu实现,但是本平台中无gpu只有一个cpu,那么在设备池中寻找另一个平台中有gpu,则连接设备池中不同平台中的硬件设备以完成该通用机器学习模型的执行。

在一个实施例中,请一并参阅图21,通用机器学习模型文件解析方法还包括:

步骤s903,对所述通用机器学习模型进行分类拆解,得到栈区数据和堆区数据。具体的,分类拆解的依据是根据数据类型的不同进行拆解。具体地,栈数据是指在多核开发平台中不可核间共享的数据,堆数据是指在多核开发平台中能够进行核间共享的数据。在一个实施例中,步骤s903所述对所述通用机器学习模型进行分类拆解,得到栈数据和堆数据的步骤包括:步骤s9031,将所述通用机器学习模型中可共享的数据拆解为栈数据;步骤s9032,将所述通用机器学习模型中不可共享的数据拆解为堆数据。

步骤s904,根据所述栈区数据、所述堆区数据以及输入数据计算,得到输出数据。在其中一个实施例中,所述方法还包括将所述栈数据分配到栈区;

具体的,栈区是指内存中主要存储栈数据的存储空间。可选的,栈区中存储的数据还包括机器学习运算过程中所产生的中间结果。在其中一个实施例中,所述方法还包括将所述堆数据分配到堆区;具体的,堆区是指内存中主要存储堆数据的存储空间。可选的堆区中存储的数据还包括机器学习运算过程中所产生的中间结果。具体的,堆区数据包括存储在堆区的数据,例如堆数据以及各堆数据块布局信息。

应该理解的是,虽然图2、图4-11以及图14-21的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4-11以及图14-21中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,请一并参阅图22,提供了一种通用机器学习模型文件解析装置,包括:

文件获取器901,目录解析器902以及模型读取器903;所述目录解析器902分别与所述文件获取器901、以及所述模型读取器903相连;

所述文件获取器901,用于获取通用机器学习模型文件;

所述目录解析器902,用于在所述通用机器学习模型文件中读取模型目录;

所述模型读取器903,用于根据所述模型目录,读取目标通用机器学习模型。

在一个实施例中,所述文件获取器901包括文件头校验器9011;

所述文件头校验器9011用于获取所述通用机器学习模型文件的标识码;并检测所述标识码是否符合预设规则;若所述文件头中的标识码合法,则在所述通用机器学习模型文件中读取模型目录;所述文件头校验器还用于:

获取所述通用机器学习模型文件的校验码;以及校验所述校验码与预设标准码是否一致,若所述校验码与预设标准码不一致,则执行纠错运算。

在一个实施例中,所述文件获取器901还包括文件尾纠正器9012;

所述文件尾纠正器9012用于获取所述文件尾的纠错码;还用于根据所述纠错码对所述通用机器学习模型文件进行纠错,得到纠错后的模型文件;以及用于校验所述纠错后的模型文件的校验码与所述预设标准码预生成的校验码是否一致;若所述纠错后的模型文件的校验码与所述预设标准码一致预生成的校验码一致,则在所述通用机器学习模型文件中读取模型目录。

在其中一个实施例中,所述文件尾纠正器9012还用于若所述纠错后的模型文件的校验码与所述预设标准码不一致,则所述方法停止执行。

在一个实施例中,所述模型读取器903还具体用于获取目标通用机器学习模型的在所述通用机器学习模型文件中的偏移量;以及根据所述偏移量,读取所述目标通用机器学习模型。

在一个实施例中,所述通用机器学习模型文件解析装置还包括模型分发器904,所述模型分发器904与所述目录解析器902相连。在其中一个实施例中,所述模型分发器904用于在所述通用机器学习模型文件中读取二级模型目录;并根据所述二级模型目录,读取目标二级模型;并对所述目标二级模型进行解还原,得到通用机器学习模型。

在一个实施例中,所述通用机器学习模型文件解析装置还包括硬件匹配器905,所述硬件匹配器905与所述模型读取器903相连;所述硬件匹配器用于读取所述通用机器学习模型中的硬件参数信息;以及用于根据所述硬件参数信息,在设备池中匹配对应硬件。

在一个实施例中,所述通用机器学习模型文件解析装置与所述通用机器学习执行装置9100相连,请一并参阅图23,所述通用机器学习执行装置包括:

模型获取器9101,用于获取通用机器学习模型;

模型拆解器9102,用于对所述通用机器学习模型进行分类拆解,得到栈区数据和堆区数据;

结果输出器9103,用于获取所述栈区数据和所述堆区数据、以及输入数据进行计算,得到输出数据。

关于通用机器学习模型文件解析装置的具体限定可以参见上文中对于通用机器学习模型文件解析方法的限定,在此不再赘述。上述通用机器学习模型文件生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图24所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种通用机器学习模型文件生成方法和/或通用机器学习模型文件解析方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图24中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以上任一实施例所述方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所述方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1