机器学习系统、使用方法及存储介质技术方案

技术编号:39320150 阅读:10 留言:0更新日期:2023-11-12 16:01
本申请实施例提供了一种机器学习系统、使用方法及存储介质。该机器学习系统包括:算子层,包括一个或多个机器学习算子;兼容层,用于将机器学习框架中的机器学习算子转换成所述算子层中的机器学习算子。本申请实施例引入算子层面的优化,通过设置兼容层,可以在多种机器学习框架中调用同一套机器学习算子,减少了在上层进行兼容所带来的灵活性和性能损失。在上层进行兼容所带来的灵活性和性能损失。在上层进行兼容所带来的灵活性和性能损失。

【技术实现步骤摘要】
机器学习系统、使用方法及存储介质


[0001]本申请实施例涉及机器学习领域,并且更为具体地,涉及一种机器学习系统、使用方法及存储介质。

技术介绍

[0002]随着机器学习技术的发展,涌现出多种机器学习框架,供开发者构造机器学习模型。但是,不同机器学习框架算子API的参数命名和使用规则不同,相似的算子和API提供的功能也有差异。
[0003]相关技术通过在机器学习框架上层的封装,实现对多种机器学习框架的兼容。通常来讲,系统调用的层级越接近底层,系统越灵活,因此相关技术基于上层的兼容会降低机器学习系统的灵活性和性能。

技术实现思路

[0004]本申请实施例提供了一种机器学习系统、使用方法及存储介质,可以兼容现有各种机器学习框架,且减少了兼容所带来的灵活性和性能的损失。
[0005]第一方面,本申请实施例提供一种机器学习系统,包括:算子层,包括一个或多个机器学习算子;兼容层,用于将机器学习框架中的机器学习算子转换成所述算子层中的机器学习算子。
[0006]可选地,作为一种可能的实现方式,所述算子层支持用户对所述算子层中的机器学习算子的直接调用。
[0007]可选地,作为一种可能的实现方式,还包括:公共层,包括公共API和/或公共类,所述算子层中的机器学习算子是基于所述公共层中的代码实现。
[0008]可选地,作为一种可能的实现方式,还包括:硬件加速层,包括接口和/或指令,所述机器学习系统通过所述接口和/或指令调用所述硬件加速层。
[0009]可选地,作为一种可能的实现方式,所述机器学习框架为深度学习框架。
[0010]可选地,作为一种可能的实现方式,所述算子层包括第一算子和第二算子,所述第一算子和第二算子兼容不同的机器学习框架。
[0011]第二方面,本申请实施例提供一种机器学习系统的使用方法,包括:接收机器学习框架中的机器学习算子的调用请求;将所述机器学习框架中的机器学习算子转换成算子层中的机器学习算子。
[0012]可选地,作为一种可能的实现方式,所述算子层支持用户对所述算子层中的机器学习算子的直接调用。
[0013]可选地,作为一种可能的实现方式,所述算子层包括第一算子和第二算子,所述第一算子和第二算子兼容不同的机器学习框架。
[0014]第三方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第二方面所述的方法。
[0015]第四方面,提供一种计算机程序产品,包括可执行代码,当所述可执行代码被执行时,能够实现如第二方面所述的方法。
[0016]本申请实施例对算子层的机器学习算子进行优化,通过兼容层在各种机器学习框架中调用底层的同一套机器学习算子。通常来讲,系统调用的层级越接近底层,系统越灵活。因此与相关技术在上层兼容多种机器学习框架的方案相比,本申请实施例兼容多种框架的机器学习系统可调用底层算子,有助于减少兼容所带来的灵活性和性能的损失。
附图说明
[0017]图1是机器学习模型开发的简要流程的示意图。
[0018]图2是不兼容的深度学习系统的架构示意图。
[0019]图3是相关技术提供的基于Keras的可兼容的深度学习系统架构示意图。
[0020]图4是相关技术提供的基于ONNX的可兼容的深度学习系统架构示意图。
[0021]图5是本申请一实施例提供的机器学习系统的结构示意图。
[0022]图6是本申请另一实施例提供的机器学习系统的结构示意图。
[0023]图7是本申请又一实施例提供的机器学习系统的结构示意图。
[0024]图8是本申请一实施例提供的深度学习系统的架构示意图。
[0025]图9是本申请一实施例提供的代码文件的结构示例图。
[0026]图10是本申请实施例提供的机器学习系统使用方法的流程示意图。
具体实施方式
[0027]机器学习作为实现人工智能(Artificial Intelligence,AI)的主要途径,在许多领域得到了广泛应用。近些年来,深度学习(Deep Learning,DL)已成为机器学习领域一个新的研究方向。深度学习在机器视觉、自动驾驶、自然语言处理等领域都取得了良好的效果。
[0028]下面结合附图,对机器学习在实际应用中的相关技术进行说明。
[0029]图1是机器学习模型开发的简要流程的示意图,机器学习模型的开发大致可以依次分为预研、训练、测试、部署等阶段。
[0030]参见图1,在步骤S110,预研阶段主要包含搭建机器学习模型结构和数据集,例如编码构造机器学习模型等。
[0031]在步骤S120,采用步骤S110的数据集对机器学习模型进行训练。
[0032]在步骤S130,对步骤S120的机器学习模型进行测试。
[0033]在步骤S140,判断模型是否达标。如果模型达标,表现稳定,则执行步骤S150。如果模型不达标,则回到步骤S110。
[0034]在步骤S150,将达标的机器学习模型根据实际应用的需求进行部署。
[0035]在步骤S160,结束机器学习模型的开发流程。
[0036]步骤S110~步骤S130的三个阶段通常会作为一个整体进行多次迭代,直至模型表现稳定达标。因此,这三个阶段消耗的人力、算力都比较大。相对而言,步骤S150的部署阶段以及后续维护期间的消耗较少。因为在设计阶段通常已经考虑到了长期运行的成本以及产品平台的实际情况,并对最终部署模型的算力在精度达标的前提下施加了一些设计限制。
[0037]为了提高机器学习模型的开发效率,减少前三个阶段的人力、算力消耗,开发者一般基于合适的机器学习编程框架进行模型结构的设计。
[0038]随着机器学习领域的发展,多种机器学习编程框架不断涌现,以达到不同的研究目的。以深度学习为例,现有用于深度学习的机器学习框架包括TensorFlow、PyTorch、PaddlePaddle、MindSpore、CNTK等。但是,各框架算子应用编程接口(Application Programming Interface,API)的参数命名和使用规则各不相同,造成机器学习领域开发的碎片化。例如,当前学术论文代码多基于PyTorch,而工业界硬件部署多基于TensorFlow。如果要将最新的科研成果转化到实际生产中(反之亦然),则需要开发者同时对机器学习算法的数学背景、编程实现以及多种框架的区别具备深入的了解,且会耗费大量的时间精力。因此,开发者减少了专注于提升算法和产品本身的时间,阻碍了机器学习的进一步快速发展和应用。
[0039]另一方面,多种框架之间,相似的算子和API提供的功能也未必相同。以卷积运算为例,教科书中的卷积(convolution)一般可以简单表示为Y=W
T
X,即卷积核(kernel)W先转置(transpose)为W
T
(
T
代表转置),然后再与本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种机器学习系统,其特征在于,包括:算子层,包括一个或多个机器学习算子;兼容层,用于将机器学习框架中的机器学习算子转换成所述算子层中的机器学习算子。2.根据权利要求1所述的机器学习系统,其特征在于,所述算子层支持用户对所述算子层中的机器学习算子的直接调用。3.根据权利要求1所述的机器学习系统,其特征在于,还包括:公共层,包括公共API和/或公共类,所述算子层中的机器学习算子是基于所述公共层中的代码实现。4.根据权利要求1所述的机器学习系统,其特征在于,还包括:硬件加速层,包括接口和/或指令,所述机器学习系统通过所述接口和/或指令调用所述硬件加速层。5.根据权利要求1所述的机器学习系统,其特征在于,所述机器学习框架为深度学习框架。6.根据权利要求1所述的机器学...

【专利技术属性】
技术研发人员:李文进
申请(专利权)人:OPPO广东移动通信有限公司
类型:发明
国别省市:

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

1