【技术实现步骤摘要】
计算图的算子映射方法以及装置
[0001]本申请涉及人工智能
,尤其涉及一种计算图的算子映射方法以及装置。
技术介绍
[0002]计算图作为深度学习框架的前端和后端之间的中间表示,可以带来良好的交互性。计算图是通过图论语言表示数据函数的一种方式,在图论中节点通过边连接,节点代表事物,连接两节点的边表示两个事物间具有的关系,而计算图中用节点代表神经网络中的输入数据或者算子,连接两节点的边表示两点之间的输入输出关系等。
[0003]深度学习框架可以把根据深度学习框架编写的模型的脚本转换为计算图,模型内的算子都可以被转换为计算图中一个对应的节点。同一个模型的脚本在不同的深度学习框架下处理过程中,生成的计算图往往是不同的。在不同的深度学习框架之间进行模型迁移的时候,比如,将模型从TensorFlow(简称TF)迁移到MindSpore(简称MS),迁移前后不同深度学习框架对应的模型的计算图的结构、计算图中算子可能不同,因此,可能需要比较迁移前后的模型对应的计算图的结构、计算图中的算子是否一致。
[0004]计算图的结构复杂、算子繁多,举例来说,ResNet50(残差网络,Residual Network)在深度学习框架TensorFlow中的计算图的算子数为2000,在深度学习框架MindSpore中的计算图的算子数为5000。设计自动化的计算图对比工具,实现两个计算图的比较以及算子关系映射非常必要。
技术实现思路
[0005]有鉴于此,提出了一种计算图的算子映射方法以及装置,可以支持相 ...
【技术保护点】
【技术特征摘要】
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.一种计算图的算子映射装置,其特征在于,用于对第一计算图和第二计算图算子映射,所述第一计算图和所述第二计算图为同一个神经网络模型的计算图,所述算子映射装置包括:迭代模块,用于基于第一足迹矩阵和第二足迹矩阵,重复下述过程,直到达到停止条
件:根据所述第一足迹矩阵和所述第二足...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。