网络模型的运行代码的确定方法、装置、设备及存储介质制造方法及图纸

技术编号:31224243 阅读:32 留言:0更新日期:2021-12-08 09:25
本申请公开了一种网络模型的运行代码的确定方法、装置、设备及存储介质,属于数据处理技术领域。该方法包括:确定网络模型的第一网络拓扑图,网络模型包括至少一个网络子模型,第一网络拓扑图用于表示至少一个网络子模型之间的拓扑关系,以及每个网络子模型包括的多个算子节点之间的结构关系;根据第一网络拓扑图中的算子节点的节点配置信息,对第一网络拓扑图进行调整,得到第二网络拓扑图;根据第二网络拓扑图和搜索空间包括的备选配置序列,确定网络模型的目标运行代码。如此,解决了采用人工方式确定网络模型的目标运行代码较为单一的问题,进而提高了网络模型的目标运行代码的运行效率。的运行效率。的运行效率。

【技术实现步骤摘要】
网络模型的运行代码的确定方法、装置、设备及存储介质


[0001]本申请涉及数据处理
,特别涉及一种网络模型的运行代码的确定方法、装置、设备及存储介质。

技术介绍

[0002]随着数据处理技术的快速发展,网络模型广泛应用于人脸识别、语音识别等领域中。其中,网络模型中可以包括一个或多个网络子模型,每个网络子模型中包括多个算子,算子又可以理解为具有运算功能的计算节点。通常来说,基于多个算子可以确定多个运行代码,进而根据多个运行代码以及多个运行代码的执行顺序可以确定网络模型的运行代码。
[0003]当网络模型应用于异构平台时,由于异构平台包括多种处理器,所以通常可以确定多个算子和多个处理器之间的任务分配关系,从而确定每个算子对应的运行代码在哪个处理器上运行。当同一算子分配至不同的处理器时,运行代码的运行效率会有所不同。为了提高运行代码的运行效率,往往需要通过人工方式确定算子和处理器之间的任务分配关系。
[0004]然而,由于网络模型中网络拓扑结构多变且包括的算子种类较多,而且异构平台中处理器的种类也较多,所以人工方式一般是基于固定的规律来确定算子和处理器之间的任务分配关系,如此,确定的网络模型的运行代码较为单一,进而可能导致网络模型的运行代码的运行效率较低。

技术实现思路

[0005]本申请实施例提供了一种网络模型的运行代码的确定方法、装置、设备及存储介质,可以解决相关技术中网络模型的运行代码的确定结果不准确的问题。
[0006]所述技术方案如下:
[0007]一方面,提供了一种网络模型的运行代码的确定方法,所述方法包括:
[0008]确定网络模型的第一网络拓扑图,所述网络模型包括至少一个网络子模型,所述第一网络拓扑图用于表示所述至少一个网络子模型之间的拓扑关系,以及每个网络子模型包括的多个算子节点之间的结构关系;
[0009]根据所述第一网络拓扑图中的算子节点的节点配置信息,对所述第一网络拓扑图进行调整,得到第二网络拓扑图;
[0010]根据所述第二网络拓扑图和搜索空间包括的备选配置序列,确定所述网络模型的目标运行代码,所述搜索空间包括的备选配置序列用于指示所述至少一个网络子模型的算子节点与异构平台的多个处理器之间的任务分配关系。
[0011]在本申请一种可能的实现方式中,所述根据所述第二网络拓扑图和搜索空间包括的备选配置序列,确定所述网络模型的目标运行代码,包括:
[0012]从所述搜索空间中确定一个备选配置序列,得到第一配置序列;
[0013]根据所述第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码;
[0014]将所述第一配置序列对应的运行代码发送至所述异构平台上运行;
[0015]若所述第一配置序列对应的运行代码在所述异构平台上的运行指标满足参考指标条件,则将所述第一配置序列对应的运行代码确定为所述目标运行代码,其中,所述运行指标用于指示所述第一配置序列对应的运行代码的运行性能。
[0016]在本申请一种可能的实现方式中,所述从所述搜索空间中确定一个备选配置序列,得到第一配置序列,包括:
[0017]若当前是针对所述网络模型首次进行备选配置序列选择,则从所述搜索空间中随机确定一个备选配置序列,得到所述第一配置序列;
[0018]若当前不是针对所述网络模型首次进行备选配置序列选择,通过指定优化器,从所述搜索空间中确定一个备选配置序列,得到所述第一配置序列,所述指定优化器是基于历史训练数据集合确定得到,所述历史训练数据集合中包括多组历史训练数据,每组历史训练数据包括历史选择的配置序列和对应的运行指标。
[0019]在本申请一种可能的实现方式中,所述根据所述第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码,包括:
[0020]根据所述第二网络拓扑图,确定多个算子节点的执行顺序,所述多个算子节点为所述至少一个网络子模型中的算子节点;
[0021]根据所述第一配置序列,将所述多个算子节点对应的中间代码转换为对应处理器能够执行的运行代码;
[0022]基于所述多个算子节点的执行顺序与转换后得到的运行代码,生成所述第一配置序列对应的运行代码。
[0023]在本申请一种可能的实现方式中,所述根据所述第二网络拓扑图,确定多个算子节点的执行顺序,包括:
[0024]根据所述第二网络拓扑图,确定所述多个算子节点的距离,每个算子节点的距离是指每个算子节点与输入算子节点之间包括的算子节点个数,所述输入算子节点用于外部输入数据;
[0025]根据所述多个算子节点的距离的大小,对所述多个算子节点进行编号;
[0026]当所述多个算子节点中不存在距离相同的算子节点时,将所述多个算子节点的编号确定为所述多个算子节点的执行顺序。
[0027]在本申请一种可能的实现方式中,所述根据所述多个算子节点的距离的大小,对所述多个算子节点进行编号之后,还包括:
[0028]当所述多个算子节点中存在距离相同的算子节点时,根据所述第一配置序列,确定距离相同的算子节点中是否存在分配至相同处理器的算子节点;
[0029]当距离相同的算子节点中存在分配至相同处理器的算子节点时,确定距离相同且分配至相同处理器的算子节点的编号对应的先后执行顺序,将确定后的多个算子节点的编号确定为所述多个算子节点的执行顺序。
[0030]在本申请一种可能的实现方式中,所述根据所述第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码之前,还包括:
[0031]当所述异构平台中存在指定处理器时,如果所述多个算子节点中存在相连的多个指定算子节点与所述指定处理器对应,则将所述多个指定算子节点进行合并处理;
[0032]相应地,所述根据所述第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码,包括:
[0033]根据合并处理后的第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码。
[0034]在本申请一种可能的实现方式中,所述将所述第一配置序列对应的运行代码发送至所述异构平台上运行之后,还包括:
[0035]若所述第一配置序列对应的运行代码在所述异构平台上的运行指标不满足所述参考指标条件,则将所述第一配置序列和所述第一配置序列对应的运行指标确定为历史训练数据集合中的一组历史训练数据;
[0036]基于所述历史训练数据集合对指定优化器进行更新;
[0037]通过更新后的指定优化器,从所述搜索空间中重新确定一个备选配置序列,得到第二配置序列;
[0038]基于所述第二网络拓扑图和所述第二配置序列,生成所述第二配置序列对应的运行代码;
[0039]获取所述第二配置序列对应的运行代码在所述异构平台上的运行指标;
[0040]若所述第二配置序列对应的运行代码在所述异构平台上的运行指标不满足所述参考指标条件,则将所述第二配置序列和所述第二配置序列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络模型的运行代码的确定方法,其特征在于,所述方法包括:确定网络模型的第一网络拓扑图,所述网络模型包括至少一个网络子模型,所述第一网络拓扑图用于表示所述至少一个网络子模型之间的拓扑关系,以及每个网络子模型包括的多个算子节点之间的结构关系;根据所述第一网络拓扑图中的算子节点的节点配置信息,对所述第一网络拓扑图进行调整,得到第二网络拓扑图;根据所述第二网络拓扑图和搜索空间包括的备选配置序列,确定所述网络模型的目标运行代码,所述搜索空间包括的备选配置序列用于指示所述至少一个网络子模型的算子节点与异构平台的多个处理器之间的任务分配关系。2.如权利要求1所述的方法,其特征在于,所述根据所述第二网络拓扑图和搜索空间包括的备选配置序列,确定所述网络模型的目标运行代码,包括:从所述搜索空间中确定一个备选配置序列,得到第一配置序列;根据所述第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码;将所述第一配置序列对应的运行代码发送至所述异构平台上运行;若所述第一配置序列对应的运行代码在所述异构平台上的运行指标满足参考指标条件,则将所述第一配置序列对应的运行代码确定为所述目标运行代码,其中,所述运行指标用于指示所述第一配置序列对应的运行代码的运行性能。3.如权利要求2所述的方法,其特征在于,所述从所述搜索空间中确定一个备选配置序列,得到第一配置序列,包括:若当前是针对所述网络模型首次进行备选配置序列选择,则从所述搜索空间中随机确定一个备选配置序列,得到所述第一配置序列;若当前不是针对所述网络模型首次进行备选配置序列选择,通过指定优化器,从所述搜索空间中确定一个备选配置序列,得到所述第一配置序列,所述指定优化器是基于历史训练数据集合确定得到,所述历史训练数据集合中包括多组历史训练数据,每组历史训练数据包括历史选择的配置序列和对应的运行指标。4.如权利要求2所述的方法,其特征在于,所述根据所述第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码,包括:根据所述第二网络拓扑图,确定多个算子节点的执行顺序,所述多个算子节点为所述至少一个网络子模型中的算子节点;根据所述第一配置序列,将所述多个算子节点对应的中间代码转换为对应处理器能够执行的运行代码;基于所述多个算子节点的执行顺序与转换后得到的运行代码,生成所述第一配置序列对应的运行代码。5.如权利要求4所述的方法,其特征在于,所述根据所述第二网络拓扑图,确定多个算子节点的执行顺序,包括:根据所述第二网络拓扑图,确定所述多个算子节点的距离,每个算子节点的距离是指每个算子节点与输入算子节点之间包括的算子节点个数,所述输入算子节点用于外部输入数据;
根据所述多个算子节点的距离的大小,对所述多个算子节点进行编号;当所述多个算子节点中不存在距离相同的算子节点时,将所述多个算子节点的编号确定为所述多个算子节点的执行顺序。6.如权利要求5所述的方法,其特征在于,所述根据所述多个算子节点的距离的大小,对所述多个算子节点进行编号之后,还包括:当所述多个算子节点中存在距离相同的算子节点时,根据所述第一配置序列,确定距离相同的算子节点中是否存在分配至相同处理器的算子节点;当距离相同的算子节点中存在分配至相同处理器的算子节点时,确定距离相同且分配至相同处理器的算子节点的编号对应的先后执行顺序,将确定后的多个算子节点的编号确定为所述多个算子节点的执行顺序。7.如权利要求2所述的方法,其特征在于,所述根据所述第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码之前,还包括:当所述异构平台中存在指定处理器时,如果所述多个算子节点中存在相连的多个指定算子节点与所述指定处理器对应,则将所述多个指定算子节点进行合并处理;相应地,所述根据所述第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码,包括:根据合并处理后的第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码。8.如权利要求2所述的方法,其特征在于,所述将所述第一配置序列对应的运行代码发送至所述异构平台上运行之后,还包括:若所述第一配置序列对应的运行代码在所述异构平台上的运行指标不满足所述参考指标条件,则将所述第一配置序列和所述第一配置序列对应的运行指标确定为历史训练数据集合中的一组历史训练数据;基于所述历史训练数据集合对指定优化器进行更新;通过更新后的指定优化器,从所述搜索空间中重新确定一个备选配置序列,得到第二配置序列;基于所述第二网络拓扑图和所述第二配置序列,生成所述第二配置序列对应的运行代码;获取所述第二配置序列对应的运行代码在所述异构平台上的运行指标;若所述第二配置序列对应的运行代码在所述异构平台上的运行指标不满足所述参考指标条件,则将所述第二配置序列和所述第二配置序列对应的运行指标确定为所述历史训练数据集合中的一组历史训练数据;返回至所述基于所述历史训练数据集合对指定优化器进行更新的操作,直到存在第二配置序列对应的运行代码在所述异构平台上的运行指标满足所述参考指标条件时,将当前确定的第二配置序列对应的运行代码确定为所述目标运行代码。9.如权利要求8所述的方法,其特征在于,所述通过更新后的指定优化器,从搜索空间中选择一个备选配置序列作为所述第二配置序列之前,还包括:获取用户配置约束信息,所述用户配置约束信息指示所述多个算子节点中部分算子节点与所述多个处理器中至少一个处理器之间的任务分配关系;
确定所述多个算子节点中除所述部分算子节点之外的其他算子节点与所述多个处理器之间的任务分配关系;基于所述用户配置约束信息指示的所述多个算子节点中部分算子节点与所述至少一个处理器之间的任务分配关系、以及所确定的任务分配关系,构建所述搜索空间。10.如权利要求1所述的方法,其特征在于,所述根据所述第二网络拓扑图和搜索空间包括的备选配置序列,确定所述网络模型的目标运行代码,包括:从所述搜索空间中确定一个备选配置序列,得到第一配置序列;根据所述第二网络拓扑图和所述第一配置序列,生成所述第一配置序列对应的运行代码;获取所述第一配置序列对应的运行代码在所述异构平台上的运行指标;将所述第一配置序列和所述第一配置序列对应的运行指标确定为历史训练数据集合中的一组历史训练数据;基于所述历史训练数据集合,确定第二配置序列;根据所述第二配置序列,确定所述网络模型的目标运行代码。11.如权利要求10所述的方法,其特征在于,所述根据所述第二配置序列,确定所述网络模型的目标运行代码,包括:确定所述第二配置序列与所述第一配置序列是否相同;当所述第二配置序列与所述第一配置序列相同时,将所述第一配置序列对应的运行代码确定为所述目标运行代码。12.如权利要求11所述的方法,其特征在于,所述确定所述第二配置序列与所述第一配置序列是否相同之后,还包括:当所述第二配置序列与所述第一配置序列不相同时,根据所述第二配置序列和所述第二网络拓扑图,生成所述第二配置序列对应的运行代码;获取所述第二配置序列对应运行代码在所述异构平台中的运行指标;将所述第二配置序列和所述第二配置序列对应的运行指标确定为所述历史训练数据集合中的一组历史训练数据;返回所述基于所述历史训练...

【专利技术属性】
技术研发人员:韩新承
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:

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

1