机器学习模型的编译优化方法和装置制造方法及图纸

技术编号:25395604 阅读:20 留言:0更新日期:2020-08-25 23:01
本发明专利技术公开了一种机器学习模型的编译优化方法和装置。其中,该方法包括:多次运行第一机器学习模型对一组预热数据进行处理,获取在多次运行第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状,比较在多次运行第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化;确定在多次运行第一机器学习模型的过程中输入张量和输出张量的形状均未发生变化的操作为稳定操作;在第一组操作中包括多个稳定操作的情况下,将所述多个所述稳定操作划分为一个或多个编译区域;通过所述目标编译器对所述第一机器学习模型中的目标编译区域上的所述稳定操作进行合并,得到第二机器学习模型。

【技术实现步骤摘要】
机器学习模型的编译优化方法和装置
本专利技术涉及人工智能领域,具体而言,涉及一种机器学习模型的编译优化方法和装置。
技术介绍
机器学习系统中的编译优化有提前编译和即时编译两大类技术。现有机器学习系统在编译时,没有引入运行时的采样信息,由于没有采样运行时张量形状的变化信息,会导致在多次迭代过程中因为部分操作张量形状变化引发计算图大部分操作的重新编译。这类重编译非常耗时且耗内存。针对相关技术中,由于在机器学习在编译时没有引入运行时的采样信息,导致的编译周期长、浪费资源的问题,目前尚未存在有效的解决方案
技术实现思路
本专利技术实施例提供了一种机器学习模型的编译优化方法和装置,以至少解决由于在机器学习在编译时没有引入运行时的采样信息,导致的编译周期长、浪费资源的技术问题。根据本专利技术实施例的一个方面,提供了一种机器学习模型的编译优化方法,包括:多次运行第一机器学习模型对一组预热数据进行处理,获取在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,其中,所述第一机器学习模型包括第一组操作,所述第一组操作中的操作为允许被目标编译器处理的操作;确定在所述多次运行所述第一机器学习模型的过程中输入张量和输出张量的形状均未发生变化的操作为稳定操作;在所述第一组操作中包括多个所述稳定操作的情况下,将所述多个所述稳定操作划分为一个或多个编译区域;通过所述目标编译器对所述第一机器学习模型中的目标编译区域上的所述稳定操作进行合并,得到第二机器学习模型,其中,所述目标编译区域为所述一个或多个编译区域中的编译区域,所述目标编译区域上的所述稳定操作为多个,所述第二机器学习模型包括第二组操作,所述第二组操作中操作的数量小于所述第一组操作中操作的数量。可选地,所述多次运行第一机器学习模型对一组预热数据进行处理,获取在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,包括:每运行一次所述第一机器学习模型,记录在该次运行所述第一机器学习模型的过程中所述第一组操作中的每个操作的输入张量和输出张量;从第二次运行所述第一机器学习模型开始,每运行一次所述第一机器学习模型,将当前一次记录的所述第一组操作中的每个操作的输入张量和输出张量与上一次记录的所述第一组操作中的每个操作的输入张量和输出张量的形状进行比较。可选地,所述多次运行第一机器学习模型对一组预热数据进行处理,获取在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,包括:每运行一次所述第一机器学习模型,记录在该次运行所述第一机器学习模型的过程中所述第一组操作中标记为尚未变化的操作的输入张量和输出张量,其中,在第一次运行所述第一机器学习模型的过程中,所述第一组操作中的每个操作被标记为尚未变化的操作;从第二次运行所述第一机器学习模型开始,每运行一次所述第一机器学习模型,将当前一次记录的所述第一组操作中标记为尚未变化的操作的输入张量和输出张量与上一次记录的输入张量和输出张量的形状进行比较,将所述标记为尚未变化的操作中输入张量和/或输出张量中发生形状变化的操作标记为已发生变化的操作,将所述标记为尚未变化的操作中输入张量和输出张量的形状未发变化的操作继续标记为尚未变化的操作;所述确定在所述多次运行所述第一机器学习模型的过程中输入张量和输出张量的形状均未发生变化的操作为稳定操作,包括:在多次运行所述第一机器学习模型之后,确定标记为已发生变化的操作为所述形变操作,所述标记为尚未变化的操作为所述稳定操作。可选地,所述通过所述目标编译器对所述第一机器学习模型中的目标编译区域上的所述稳定操作进行合并,包括:通过所述目标编译器将所述目标编译区域上的所述稳定操作合并成一个操作,并将所述稳定操作的输入张量和输出张量转换为所述一个操作的输入张量和输出张量,得到所述第二机器学习模型。可选地,所述一组预热数据包括多个预热数据集,其中,所述多次运行第一机器学习模型对一组预热数据进行处理,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,包括:重复执行多次以下步骤:将一个所述预热数据集中的多个输入张量分别输入至所述第一组操作中部分或全部的操作,运行一次所述第一机器学习模型,得到所述第一组操作中的每个操作的输入张量和输出张量;比较在所述多次运行所述第一机器学习模型的过程中所述第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化。可选地,所述多次运行第一机器学习模型对一组预热数据进行处理,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,包括:重复执行多次以下步骤:将所述一组预热数据中的多个输入张量分别输入至所述第一组操作中部分或全部的操作,运行一次所述第一机器学习模型,得到所述第一组操作中的每个操作的输入张量和输出张量;比较在所述多次运行所述第一机器学习模型的过程中所述第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化。可选地,所述方法还包括:在所述多次运行所述第一机器学习模型对一组预热数据进行处理的过程中,获取所述第一组操作中的每个操作的运行状态信息,其中,所述运行状态信息包括每个操作的运行时间和/或所需的运行资源;根据所述运行状态信息为所述第二组操作中的每个操作分配相应的运行资源。可选地,在所述得到第二机器学习模型之后,所述方法还包括:将正式数据输入至所述第二机器学习模型,其中,所述正式数据中包括一组正式输入张量;通过所述目标编译器对所述第二机器学习模型进行编译,得到所述第二机器学习模型对所述一组正式输入张量进行处理后输出的处理结果。可选地,所述将所述多个所述稳定操作划分为一个或多个编译区域,包括:将所述多个所述稳定操作中相互连接的稳定操作划分为一个所述编译区域,得到所述一个或多个编译区域。根据本专利技术实施例的另一方面,还提供了一种机器学习模型的编译优化装置,包括:处理模块,用于多次运行第一机器学习模型对一组预热数据进行处理,获取在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,其中,所述第一机器学习模型包括第一组操作,所述第一组操作中的操作为允许被目标编译器处理的操作;确定模块,用于确定在所述多次运行所述第一机器学习模型的过程中输入张量和输出张量的形状均未发生变化的操作为稳定操作;划分模块,用于在所述第一组操作中包括多个所述稳定操作的情况下,将所述多个所述稳定操作本文档来自技高网...

【技术保护点】
1.一种机器学习模型的编译优化方法,其特征在于,包括:/n多次运行第一机器学习模型对一组预热数据进行处理,获取在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,其中,所述第一机器学习模型包括第一组操作,所述第一组操作中的操作为允许被目标编译器处理的操作;/n确定在所述多次运行所述第一机器学习模型的过程中输入张量和输出张量的形状均未发生变化的操作为稳定操作;/n在所述第一组操作中包括多个所述稳定操作的情况下,将所述多个所述稳定操作划分为一个或多个编译区域;/n通过所述目标编译器对所述第一机器学习模型中的目标编译区域上的所述稳定操作进行合并,得到第二机器学习模型,其中,所述目标编译区域为所述一个或多个编译区域中的编译区域,所述目标编译区域上的所述稳定操作为多个,所述第二机器学习模型包括第二组操作,所述第二组操作中操作的数量小于所述第一组操作中操作的数量。/n

【技术特征摘要】
1.一种机器学习模型的编译优化方法,其特征在于,包括:
多次运行第一机器学习模型对一组预热数据进行处理,获取在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,其中,所述第一机器学习模型包括第一组操作,所述第一组操作中的操作为允许被目标编译器处理的操作;
确定在所述多次运行所述第一机器学习模型的过程中输入张量和输出张量的形状均未发生变化的操作为稳定操作;
在所述第一组操作中包括多个所述稳定操作的情况下,将所述多个所述稳定操作划分为一个或多个编译区域;
通过所述目标编译器对所述第一机器学习模型中的目标编译区域上的所述稳定操作进行合并,得到第二机器学习模型,其中,所述目标编译区域为所述一个或多个编译区域中的编译区域,所述目标编译区域上的所述稳定操作为多个,所述第二机器学习模型包括第二组操作,所述第二组操作中操作的数量小于所述第一组操作中操作的数量。


2.根据权利要求1所述的方法,其特征在于,所述多次运行第一机器学习模型对一组预热数据进行处理,获取在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,包括:
每运行一次所述第一机器学习模型,记录在该次运行所述第一机器学习模型的过程中所述第一组操作中的每个操作的输入张量和输出张量;
从第二次运行所述第一机器学习模型开始,每运行一次所述第一机器学习模型,将当前一次记录的所述第一组操作中的每个操作的输入张量和输出张量与上一次记录的所述第一组操作中的每个操作的输入张量和输出张量的形状进行比较。


3.根据权利要求1所述的方法,其特征在于,
所述多次运行第一机器学习模型对一组预热数据进行处理,获取在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的每个操作的输入张量和输出张量的形状是否发生变化,包括:每运行一次所述第一机器学习模型,记录在该次运行所述第一机器学习模型的过程中所述第一组操作中标记为尚未变化的操作的输入张量和输出张量,其中,在第一次运行所述第一机器学习模型的过程中,所述第一组操作中的每个操作被标记为尚未变化的操作;从第二次运行所述第一机器学习模型开始,每运行一次所述第一机器学习模型,将当前一次记录的所述第一组操作中标记为尚未变化的操作的输入张量和输出张量与上一次记录的输入张量和输出张量的形状进行比较,将所述标记为尚未变化的操作中输入张量和输出张量的形状未发变化的操作继续标记为尚未变化的操作;
所述确定在所述多次运行所述第一机器学习模型的过程中输入张量和输出张量的形状均未发生变化的操作为稳定操作,包括:在多次运行所述第一机器学习模型之后,确定标记为尚未变化的操作为所述稳定操作。


4.根据权利要求1所述的方法,其特征在于,通过所述目标编译器对所述第一机器学习模型中的目标编译区域上的所述稳定操作进行合并,包括:
通过所述目标编译器将所述目标编译区域上的所述稳定操作合并成一个操作,并将所述稳定操作的输入张量和输出张量转换为所述一个操作的输入张量和输出张量,得到所述第二机器学习模型。


5.根据权利要求1所述的方法,其特征在于,所述一组预热数据包括多个预热数据集,其中,所述多次运行第一机器学习模型对一组预热数据进行处理,比较在所述多次运行所述第一机器学习模型的过程中第一组操作中的...

【专利技术属性】
技术研发人员:姜曦楠朱子霖周飞虎郭振宇
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1