一种深度学习模型的运行方法、装置、电子设备及介质制造方法及图纸

技术编号:26173009 阅读:9 留言:0更新日期:2020-10-31 13:53
本申请提供了一种深度学习模型的运行方法、装置、电子设备及介质,其中,该方法包括:获取深度学习模型中各个算子之间的逻辑关系;根据各个算子之间的逻辑关系,调整所述深度学习模型中各个算子的运行时间,以使所述调整后的深度学习模型中,至少两个逻辑关系相连续的算子的运行总时长被延长;按照所述调整后的所述深度学习模型中各个算子的运行时间,运行所述深度学习模型。采用本申请所提供的方案可以在不降低模型复杂度和优化模型算子底层代码的情况下,实现降低CPU负载的目的。

【技术实现步骤摘要】
一种深度学习模型的运行方法、装置、电子设备及介质
本申请涉及人工智能
,具体而言,涉及一种深度学习模型的运行方法、装置、电子设备及介质。
技术介绍
目前,随着人工智能的蓬勃发展,越来越多的深度学习模型被部署在智能设备上,例如人脸识别模型、目标检测模型、目标追踪模型。OCR(OpticalCharacterRecognition,光学字符识别)模型等。在智能设备上运行深度学习模型时会占用较多的CPU资源,从而带来不小的CPU负载,导致整个深度学习模型的运行过程出现卡顿或运行不准确的问题,严重的甚至会对智能设备的系统带来不良影响。针对上述问题,现有技术提出了以下两种技术方案:技术方案一:通过降低模型复杂度来降低运行深度学习模型时的CPU负载,常见的手段包括模型压缩和模型裁剪。对于复杂度越低的模型,在运行时常常会占用越少的CPU资源,从而降低CPU负载,但是深度学习模型的低复杂度往往以牺牲模型的精度为代价。真实的AI应用场景中对深度学习模型的精度有较高的要求,而采用该方案常常难以满足应用要求。技术方案二:通过优化深度学习模型算子底层代码的实现来降低运行时的CPU负载。该方案的实现对开发者的技术要求高,且需要花费较多时间用于底层代码优化,但难以保证优化后的效果。同时,智能设备多种多样,涉及的CPU架构也各有不同。在某一种CPU上的优化方案,对其他CPU不具有通用性。综上,采用该方案在实际应用时十分复杂、易用性较低。
技术实现思路
有鉴于此,本申请的目的在于提供一种深度学习模型的运行方法、装置、电子设备及介质,可以在不降低模型复杂度和优化模型算子底层代码的情况下,实现降低CPU负载的目的。根据本申请的第一方面,提供一种深度学习模型的运行方法,包括:获取深度学习模型中各个算子之间的逻辑关系;根据各个算子之间的逻辑关系,调整所述深度学习模型中各个算子的运行时间,以使所述调整后的深度学习模型中,至少两个逻辑关系相连续的算子的运行总时长被延长;按照所述调整后的所述深度学习模型中各个算子的运行时间,运行所述深度学习模型。在一种可能的实施方式中,根据各个算子之间的逻辑关系,调整所述深度学习模型中各个算子的运行时间,以使所述调整后的深度学习模型中,至少两个逻辑关系相连续的算子的运行总时长被延长,包括:针对至少一个目标算子对,在该目标算子对中的两个算子之间设置预定的延迟时间,以使该目标算子对的运行总时长被延长;所述目标算子对中的两个算子是逻辑关系相连续的两个算子,所述延迟时间用于表征目标算子对中的两个算子的执行间隔时间。在一种可能的实施方式中,通过以下步骤确定所述目标算子对中的两个算子的延迟时间:针对所述目标算子对,根据该目标算子对中的前一个算子的计算量确定该目标算子对中的两个算子的延迟时间。在一种可能的实施方式中,通过以下步骤确定每个算子的计算量,包括:针对每个算子,获取该算子在运行时所需的计算参数;所述计算参数包括以下的任意一种或多种:调用的计算单元数量、计算单元的调用次数;基于每个算子在运行时所需的计算参数,确定该算子的计算量。在一种可能的实施方式中,任意所述目标算子对中的两个算子的延迟时间均是相同的。在一种可能的实施方式中,通过以下步骤确定所述目标算子对中的两个算子的延迟时间:以所述深度学习模型中所有目标算子对的延迟时间变量的累加值不大于预设的总延迟时间,且每个目标算子对的延迟时间变量的平均值最大为约束条件,求解每个目标算子对的延迟时间变量的值;基于求解的所述目标算子对的延迟时间变量的值,确定所述目标算子对中的两个算子的延迟时间。在一种可能的实施方式中,通过以下步骤确定所述深度学习模型中所有目标算子对的延迟时间变量的累加值:针对所述深度学习模型并行运行的情况,若多个目标算子对中的后一个算子均为同一算子,则所述多个目标算子对的延迟时间变量的累加值为所述多个目标算子对的延迟时间变量的值中的最大值。在一种可能的实施方式中,通过以下步骤确定所述深度学习模型中所有目标算子对的延迟时间变量的累加值:针对所述深度学习模型串行运行的情况,若多个目标算子对中的后一个算子均为同一算子,则所述多个目标算子对的延迟时间变量的累加值为所述多个目标算子对的延迟时间变量的值的累加值。在一种可能的实施方式中,获取深度学习模型中各个算子之间的逻辑关系,包括:利用模型解析工具对所述深度学习模型进行模型解析,得到模型数据流图;从所述模型数据流图中获取所述深度学习模型中各个算子之间的逻辑关系。根据本申请的第二方面,提供一种深度学习模型的运行装置,包括:获取模块,用于获取深度学习模型中各个算子之间的逻辑关系;调整模块,用于根据各个算子之间的逻辑关系,调整所述深度学习模型中各个算子的运行时间,以使所述调整后的深度学习模型中,至少两个逻辑关系相连续的算子的运行总时长被延长;运行模块,用于按照所述调整后的所述深度学习模型中各个算子的运行时间,运行所述深度学习模型。在一种可能的实施方式中,所述调整模块包括:设置单元,用于针对至少一个目标算子对,在该目标算子对中的两个算子之间设置预定的延迟时间,以使该目标算子对的运行总时长被延长;所述目标算子对中的两个算子是逻辑关系相连续的两个算子,所述延迟时间用于表征目标算子对中的两个算子的执行间隔时间。在一种可能的实施方式中,所述调整模块还包括:第一确定单元,用于针对所述目标算子对,根据该目标算子对中的前一个算子的计算量确定该目标算子对中的两个算子的延迟时间。在一种可能的实施方式中,所述调整模块还包括:获取单元,用于针对每个算子,获取该算子在运行时所需的计算参数;所述计算参数包括以下的任意一种或多种:调用的计算单元数量、计算单元的调用次数;第二确定单元,用于基于每个算子在运行时所需的计算参数,确定该算子的计算量。在一种可能的实施方式中,任意所述目标算子对中的两个算子的延迟时间均是相同的。在一种可能的实施方式中,所述调整模块还包括:求解单元,用于以所述深度学习模型中所有目标算子对的延迟时间变量的累加值不大于预设的总延迟时间,且每个目标算子对的延迟时间变量的平均值最大为约束条件,求解每个目标算子对的延迟时间变量的值;第三确定单元,用于基于求解的所述目标算子对的延迟时间变量的值,确定所述目标算子对中的两个算子的延迟时间。在一种可能的实施方式中,所述调整模块还包括:第四确定单元,用于针对所述深度学习模型并行运行的情况,若多个目标算子对中的后一个算子均为同一算子,则将所述多个目标算子对的延迟时间变量的值中的最大值确定为所述多个目标算子对的延迟时间变量的累加值。在一种可能的实施方式中,所述调整模块还包括:第五确定单元,用于针对所述深度学习模型串行运行的情况,若多个目标算子对中的后一个算子均为同一算子,则将所述多个目标算子本文档来自技高网...

【技术保护点】
1.一种深度学习模型的运行方法,其特征在于,包括:/n获取深度学习模型中各个算子之间的逻辑关系;/n根据各个算子之间的逻辑关系,调整所述深度学习模型中各个算子的运行时间,以使所述调整后的深度学习模型中,至少两个逻辑关系相连续的算子的运行总时长被延长;/n按照所述调整后的所述深度学习模型中各个算子的运行时间,运行所述深度学习模型。/n

【技术特征摘要】
1.一种深度学习模型的运行方法,其特征在于,包括:
获取深度学习模型中各个算子之间的逻辑关系;
根据各个算子之间的逻辑关系,调整所述深度学习模型中各个算子的运行时间,以使所述调整后的深度学习模型中,至少两个逻辑关系相连续的算子的运行总时长被延长;
按照所述调整后的所述深度学习模型中各个算子的运行时间,运行所述深度学习模型。


2.根据权利要求1所述的方法,其特征在于,根据各个算子之间的逻辑关系,调整所述深度学习模型中各个算子的运行时间,以使所述调整后的深度学习模型中,至少两个逻辑关系相连续的算子的运行总时长被延长,包括:
针对至少一个目标算子对,在该目标算子对中的两个算子之间设置预定的延迟时间,以使该目标算子对的运行总时长被延长;所述目标算子对中的两个算子是逻辑关系相连续的两个算子,所述延迟时间用于表征目标算子对中的两个算子的执行间隔时间。


3.根据权利要求2所述的方法,其特征在于,通过以下步骤确定所述目标算子对中的两个算子的延迟时间:
针对所述目标算子对,根据该目标算子对中的前一个算子的计算量确定该目标算子对中的两个算子的延迟时间。


4.根据权利要求3所述的方法,其特征在于,通过以下步骤确定每个算子的计算量,包括:
针对每个算子,获取该算子在运行时所需的计算参数;所述计算参数包括以下的任意一种或多种:调用的计算单元数量、计算单元的调用次数;
基于每个算子在运行时所需的计算参数,确定该算子的计算量。


5.根据权利要求2所述的方法,其特征在于,任意所述目标算子对中的两个算子的延迟时间均是相同的。


6.根据权利要求2所述的方法,其特征在于,通过以下步骤确定所述目标算子对中的两个算子的延迟时间:
以所述深度学习模型中所有目标算子对的延迟时间变量的累加值不大于预设的总延迟时间,且每个目标算子对的延迟时间变量的平均值最大为约束条件,求解每个目标算子对的延迟时间变量的值;
基于求解的所述目标算子对的延迟时间变量的值,确定所述目标算子对中的两个算子的延迟时间。


7.根据权利要求6所述的方法,其特征在于,通过以下步骤确定所述深度学习模型中所有目标算子对的延迟时间变量的累加值:
针对所述深度学习模型并行运行的情况,若多个目标算子对中的后一个算子均为同一算子,则所述多个目标算子对的延迟时间变量的累加值为所述多个目标算子对的延迟时间变量的值中的最大值。


8.根据权利要求6所述的方法,其特征在于,通过以下步骤确定所述深度学习模型中所有目标算子对的延迟时间变量的累加值:
针对所述深度学习模型串行运行的情况,若多个目标算子对中的后一个算子均为同一算子,则所述多个目标算子对的延迟时间变量的累加值为所述多个目标算子对的延迟时间变量的值的累加值。


9.根据权利要求1所述的方法,其特征在于,获取深度学习模型中各个算子之间的逻辑关系,包括:
利用模型解析工具对所述深度学习模型进行模型解析,得到模型数据流图;
从所述模型数据流图中获取所述深度学习模型中各个算子之间的逻辑关系。


10.一种深度学习模型的运行装置,其特征在于,包括:
获取模块,用于获取深度学习模型中各个算子之间的逻辑关系;
调整模块,用于根据各个算子之间的逻...

【专利技术属性】
技术研发人员:靖远
申请(专利权)人:北京嘀嘀无限科技发展有限公司
类型:发明
国别省市:北京;11

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

1