计算图的算子映射方法以及装置制造方法及图纸

技术编号:33993344 阅读:38 留言:0更新日期:2022-07-02 10:16
本申请涉及一种计算图的算子映射方法以及装置,所述方法包括:基于第一足迹矩阵和第二足迹矩阵,重复下述过程,直到达到停止条件:根据第一足迹矩阵和第二足迹矩阵计算第一矩阵,并根据第一矩阵调整第一足迹矩阵中的行和列的顺序,根据调整后的第一足迹矩阵和第二足迹矩阵重新计算第一矩阵;根据达到停止条件时的第一足迹矩阵、第二足迹矩阵,得到第一计算图中的多个算子各自在第二计算图中对应的算子。本申请提供的实施例的算子映射方法以及装置,可以支持相似结构的计算图之间的算子映射,能够适用于深度学习框架进行模型迁移的场景中。景中。景中。

【技术实现步骤摘要】
计算图的算子映射方法以及装置


[0001]本申请涉及人工智能
,尤其涉及一种计算图的算子映射方法以及装置。

技术介绍

[0002]计算图作为深度学习框架的前端和后端之间的中间表示,可以带来良好的交互性。计算图是通过图论语言表示数据函数的一种方式,在图论中节点通过边连接,节点代表事物,连接两节点的边表示两个事物间具有的关系,而计算图中用节点代表神经网络中的输入数据或者算子,连接两节点的边表示两点之间的输入输出关系等。
[0003]深度学习框架可以把根据深度学习框架编写的模型的脚本转换为计算图,模型内的算子都可以被转换为计算图中一个对应的节点。同一个模型的脚本在不同的深度学习框架下处理过程中,生成的计算图往往是不同的。在不同的深度学习框架之间进行模型迁移的时候,比如,将模型从TensorFlow(简称TF)迁移到MindSpore(简称MS),迁移前后不同深度学习框架对应的模型的计算图的结构、计算图中算子可能不同,因此,可能需要比较迁移前后的模型对应的计算图的结构、计算图中的算子是否一致。
[0004]计算图的结构复杂、算子繁多,举例来说,ResNet50(残差网络,Residual Network)在深度学习框架TensorFlow中的计算图的算子数为2000,在深度学习框架MindSpore中的计算图的算子数为5000。设计自动化的计算图对比工具,实现两个计算图的比较以及算子关系映射非常必要。

技术实现思路

[0005]有鉴于此,提出了一种计算图的算子映射方法以及装置,可以支持相似结构的计算图之间的算子映射,能够适用于深度学习框架进行模型迁移的场景中。
[0006]第一方面,本申请的实施例提供了一种计算图的算子映射方法,用于对第一计算图和第二计算图中的算子进行算子映射,所述第一计算图和所述第二计算图为同一个神经网络模型的计算图,所述算子映射方法包括:
[0007]处理器第一足迹矩阵和第二足迹矩阵,重复下述过程,直到达到停止条件:根据所述第一足迹矩阵和所述第二足迹矩阵计算第一矩阵,并根据所述第一矩阵调整所述第一足迹矩阵中的行和列的顺序,根据调整后的第一足迹矩阵和所述第二足迹矩阵重新计算所述第一矩阵;其中,所述第一足迹矩阵指示所述第一计算图的算子之间的拓扑关系,所述第二足迹矩阵指示所述第二计算图的算子之间的拓扑关系,所述第一矩阵指示所述第一计算图和所述第二计算图的拓扑关系的相似度;处理器根据达到所述停止条件时的第一足迹矩阵、所述第二足迹矩阵,得到所述第一计算图中的多个算子各自在第二计算图中对应的算子。
[0008]本申请提供的实施例的算子映射方法,通过构建两个计算图的足迹矩阵,足迹矩阵为表示计算图的算子之间的拓扑关系的矩阵。根据两个计算图对应的足迹矩阵可以迭代计算第一矩阵,第一矩阵可以指示两个计算图的拓扑关系的相似度。迭代停止后,可根据足
迹矩阵确定优选的一种或多种映射关系。因此,本申请提供的算子映射方法可以支持相似结构的计算图之间的算子映射,能够适用于深度学习框架进行模型迁移的场景中。
[0009]根据第一方面的第一种可能的实现方式中,处理器根据第一足迹矩阵和第二足迹矩阵计算第一矩阵,包括:处理器根据多个第一特征向量和多个第二特征向量,得到所述第一矩阵,其中,每个所述第一特征向量对应所述第一计算图中的算子,每个所述第一特征向量与所述第一特征向量对应的算子在所述第一足迹矩阵中对应的行向量与列向量有关,每个所述第二特征向量对应所述第二计算图中的算子,每个所述第二特征向量与所述第二特征向量对应的算子在所述第二足迹矩阵中对应的行向量与列向量有关,所述第一特征向量和所述第二特征向量用于计算所述第一特征向量对应的算子和所述第二特征向量对应的算子之间的拓扑关系的相似度。
[0010]根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一矩阵的元素的值表示所述元素所在的行对应的算子和所在的列对应的算子的拓扑关系的相似度,其中,所述元素所在行对应的算子和所述元素所在列对应的算子分别为所述第一计算图中的算子和所述第二计算图中的算子。
[0011]采用算子在计算图对应的足迹矩阵中对应的行向量和列向量构建算子的特征向量,提取了算子在计算图中的拓扑关系特征。根据算子的特征向量计算算子的拓扑关系的相似度,第一计算图的算子和第二计算图的算子的拓扑关系的相似度组成相似度矩阵,通过相似度矩阵衡量两个计算图的拓扑关系的相似度。
[0012]根据第一方面、或第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述第一足迹矩阵、调整后的第一足迹矩阵与所述第二足迹矩阵的相同位置的行对应的算子、相同位置的列对应的算子的类型相同、算子输出的张量的维度相同,也就是说,所述第一足迹矩阵和所述第二足迹矩阵的相同位置的行对应的算子、相同位置的列对应的算子的类型相同、算子输出的张量的维度相同,调整后的第一足迹矩阵和所述第二足迹矩阵的相同位置的行对应的算子、相同位置的列对应的算子的类型相同、算子输出的张量的维度相同。
[0013]在构建第一足迹矩阵和第二足迹矩阵、以及调整第一足迹矩阵时,保证第一足迹矩阵和第二足迹矩阵的相同位置的行对应的算子、相同位置的列对应的算子的类型相同、算子输出的张量的维度相同,也就是第一足迹矩阵和第二足迹矩阵相同位置的行对应的算子、相同位置的列对应的算子在功能上是相同的。结合相似度矩阵衡量算子之间的拓扑关系的相似度。根据本申请提供的算子映射方法,可以从功能和拓扑关系上体现两个算子之间的映射关系,从而确保映射结果的正确性。
[0014]根据第一方面、或第一方面的第一种或第二种可能的实现方式,在第四种可能的实现方式中,所述第一计算图和所述第二计算图中的算子分属于多个第一分区,同一第一分区的算子类型相同、且算子输出的张量的维度相同,每个第一分区中可以包括第一计算图和/或第二计算图的至少部分算子;所述第一计算图和所述第二计算图中的部分算子属于第二分区,所述第二分区中的算子类型不同和/或算子输出的张量的维度不同;所述第一足迹矩阵和所述第二足迹矩阵的相同位置的行对应的算子在同一第一分区、相同位置的列对应的算子在同一第一分区;且,属于同一第一分区的第一计算图的算子在所述第一足迹矩阵中对应的行或者列连续排列,属于同一第一分区的第二计算图的算子在所述第二足迹
矩阵中对应的行或者列连续排列。
[0015]因为同质算子之间存在映射关系的可能性更大,并且,在本申请的实施例中,第一足迹矩阵和第二足迹矩阵相同位置的行或列对应的算子之间存在映射关系。因此,根据本申请提供的上述实施例的方法,通过对第一计算图和第二计算图中的算子进行同质分区,并且在调整第一足迹矩阵中的行和列的顺序时,调整位于同一同质分区的算子对应的行和列的顺序,可以更快速使迭代的过程收敛,加快映射的过程。
[0016]对于不存在同质算子的算子,通设置混合分区进行分类并参与迭代计算的过程得到对应的算子相似度,在确定映射算子时,可以根据计算得到的相似度输出映射建议。从而可以支持相似结构本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算图的算子映射方法,其特征在于,用于对第一计算图和第二计算图算子映射,所述第一计算图和所述第二计算图为同一个神经网络模型的计算图,所述算子映射方法包括:基于第一足迹矩阵和第二足迹矩阵,重复下述过程,直到达到停止条件:根据所述第一足迹矩阵和所述第二足迹矩阵计算第一矩阵,并根据所述第一矩阵调整所述第一足迹矩阵中的行和列的顺序,根据调整后的第一足迹矩阵和所述第二足迹矩阵重新计算所述第一矩阵;其中,所述第一足迹矩阵指示所述第一计算图的算子之间的拓扑关系,所述第二足迹矩阵指示所述第二计算图的算子之间的拓扑关系,所述第一矩阵指示所述第一计算图和所述第二计算图的拓扑关系的相似度;根据达到所述停止条件时的第一足迹矩阵、所述第二足迹矩阵,得到所述第一计算图中的多个算子各自在第二计算图中对应的算子。2.根据权利要求1所述的方法,其特征在于,根据所述第一足迹矩阵和所述第二足迹矩阵计算所述第一矩阵,包括:根据多个第一特征向量和多个第二特征向量,得到所述第一矩阵,其中,每个所述第一特征向量对应所述第一计算图中的算子,每个所述第一特征向量与所述第一特征向量对应的算子在所述第一足迹矩阵中对应的行向量与列向量有关,每个所述第二特征向量对应所述第二计算图中的算子,每个所述第二特征向量与所述第二特征向量对应的算子在所述第二足迹矩阵中对应的行向量与列向量有关,所述第一特征向量和所述第二特征向量用于计算所述第一特征向量对应的算子和所述第二特征向量对应的算子之间的拓扑关系的相似度。3.根据权利要求2所述的方法,其特征在于,所述第一矩阵的元素的值表示所述元素所在的行对应的算子和所在的列对应的算子的拓扑关系的相似度,其中,所述元素所在行对应的算子和所述元素所在列对应的算子分别为所述第一计算图中的算子和所述第二计算图中的算子。4.根据权利要求1

3任意一项所述的方法,其特征在于,所述第一计算图和所述第二计算图中的算子分属于多个第一分区,同一第一分区的算子类型相同、且算子输出的张量的维度相同;所述第一足迹矩阵和所述第二足迹矩阵的相同位置的行对应的算子在同一第一分区、相同位置的列对应的算子在同一第一分区;且,属于同一第一分区的第一计算图的算子在所述第一足迹矩阵中对应的行或者列连续排列,属于同一第一分区的第二计算图的算子在所述第二足迹矩阵中对应的行或者列连续排列。5.根据权利要求4所述的方法,其特征在于,所述第一计算图和所述第二计算图中的部分算子属于第二分区,所述第二分区中的算子类型不同和/或算子输出的张量的维度不同。6.根据权利要求4所述的方法,其特征在于,所述第一足迹矩阵和所述第二足迹矩阵相同位置的行对应的算子的同质深度相同、相同位置的列对应的算子的同质深度相同,且属于同一第一分区的所述第一计算图的算子在所述第一足迹矩阵中对应的行或列按照算子的所述同质深度排序、同一第一分区的第二计算图的算子在所述第二足迹矩阵中对应的行或列按照算子的所述同质深度排序;
其中,所述同质深度为:在计算图中所述算子所属的所有分支中,在所述算子之前与所述算子类型相同、输出的张量维度相同的算子的最大数目。7.根据权利要求5所述的方法,其特征在于,如果所述第一分区中的所述第一计算图的算子的数目和所述第二计算图的算子的数目不同,所述第一分区中还包括伪算子;其中,伪算子为不具备算子类型和操作数的算子;如果所述第一分区中的所述第一计算图的算子的数目少于所述第一分区中的所述第二计算图的算子数目,所述伪算子在所述第一足迹矩阵中对应的行或列,位于所述第一计算图中属于所述第一分区的算子对应的行或列之后,如果所述第一分区中的所述第二计算图的算子的数目少于所述第一分区中的所述第一计算图的算子数目,所述伪算子在所述第二足迹矩阵中对应的行或列,位于所述第二计算图中属于所述第一分区的算子对应的行或列之后。8.根据权利要求5或7所述的方法,其特征在于,如果所述第二分区中的所述第一计算图的算子的数目和所述第二计算图的算子的数目不同,所述第二分区中还包括所述伪算子;如果所述第二分区中的所述第一计算图的算子的数目少于所述第二分区中的所述第二计算图的算子数目,所述伪算子在所述第一足迹矩阵中对应的行和列与所述第一计算图中属于所述第二分区的算子对应的行和列随机排序,且行和列随机排序的方式相同;如果所述第二分区中的所述第二计算图的算子的数目少于所述第二分区中的所述第二计算图的算子数目,所述伪算子在所述第二足迹矩阵中对应的行和列与所述第二计算图中属于所述第二分区的算子对应的行和列随机排序,且行和列随机排序的方式相同。9.根据权利要求5

8任意一项所述的方法,其特征在于,根据所述第一矩阵调整所述第一足迹矩阵中的行和列的顺序,包括:根据所述第一矩阵调整所述第一足迹矩阵中位于同一所述第一分区内的算子对应的行和列的顺序。10.根据权利要求5

8任意一项所述的方法,其特征在于,属于同一第一分区、且在达到所述停止条件时的第一足迹矩阵和所述第二足迹矩阵中对应的行或列的位置相同的所述第一计算图的算子和第二计算图的算子之间存在映射关系;属于所述第二分区的第一计算图的算子与属于第二分区的第二计算图的多个算子之间存在映射关系,其中,所述属于第二分区的第二计算图的多个算子为:达到所述停止条件时的第一矩阵中,与所述属于所述第二分区的第一计算图的算子对应的元素的值中,最大的多个值所对应的第二计算图的算子。11.根据权利要求1

10任意一项所述的方法,其特征在于,所述停止条件为所述重复计算第一矩阵的次数大于第一阈值。12.一种计算图的算子映射装置,其特征在于,用于对第一计算图和第二计算图算子映射,所述第一计算图和所述第二计算图为同一个神经网络模型的计算图,所述算子映射装置包括:迭代模块,用于基于第一足迹矩阵和第二足迹矩阵,重复下述过程,直到达到停止条
件:根据所述第一足迹矩阵和所述第二足...

【专利技术属性】
技术研发人员:吴艺晖
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1