【技术实现步骤摘要】
计算图的图编译方法、装置、设备及存储介质
本申请涉及深度学习领域,特别涉及一种计算图的图编译方法、装置、设备及存储介质。
技术介绍
计算图(ComputationalGraph)是一种用于描述函数的有向无环图,用于表示机器学习模型涉及的计算逻辑。相关技术中,采用计算图表示神经网络的算法,将计算图转化为计算机可识别的计算机语言,即完成对该神经网络的编译过程。基于上述情况,当神经网络的算法较为复杂时,该神经网络对应有比较复杂的计算图,需要对计算图进行大量的计算。
技术实现思路
本申请实施例提供了一种计算图的图编译方法、装置、设备及存储介质,可以提高终端对计算图的编译效率,所述技术方案如下:根据本申请的一个方面,提供了一种计算图的图编译方法,用于编译深度学习的计算图,所述方法包括:获取输入的所述计算图,所述计算图包括至少两层节点,相邻两层节点中存在数据流动方向的节点之间连接有有向边,所述至少两层节点中存在目标节点;对所述计算图进行图改写,得到优化后的计算图;对于所述优化后的计算图 ...
【技术保护点】
1.一种计算图的图编译方法,其特征在于,用于编译深度学习的计算图,所述方法包括:/n获取输入的所述计算图,所述计算图包括至少两层节点,相邻两层节点中存在数据流动方向的节点之间连接有有向边,所述至少两层节点中存在目标节点;/n对所述计算图进行图改写,得到优化后的计算图;/n对于所述优化后的计算图,生成所述目标节点的前向计算序列;/n对所述前向计算序列中的各个节点进行算子代码编译,得到所述前向计算序列的第一算子代码;/n输出所述目标节点的所述前向计算序列和所述第一算子代码。/n
【技术特征摘要】
1.一种计算图的图编译方法,其特征在于,用于编译深度学习的计算图,所述方法包括:
获取输入的所述计算图,所述计算图包括至少两层节点,相邻两层节点中存在数据流动方向的节点之间连接有有向边,所述至少两层节点中存在目标节点;
对所述计算图进行图改写,得到优化后的计算图;
对于所述优化后的计算图,生成所述目标节点的前向计算序列;
对所述前向计算序列中的各个节点进行算子代码编译,得到所述前向计算序列的第一算子代码;
输出所述目标节点的所述前向计算序列和所述第一算子代码。
2.根据权利要求1所述的方法,其特征在于,所述计算图中包括:第一目标节点和第二目标节点;
所述对所述计算图进行图改写,得到优化后的计算图,包括:
响应于所述第一目标节点和所述第二目标节点存在相同的子图,合并所述第一目标节点和所述第二目标节点的子图,得到所述优化后的计算图。
3.根据权利要求2所述的方法,其特征在于,所述响应于所述第一目标节点和所述第二目标节点存在相同的子图,合并所述第一目标节点和所述第二目标节点的子图,得到所述优化后的计算图,包括:
响应于所述第一目标节点和所述第二目标节点存在相同的子图且所述子图中的节点数大于阈值,保留所述第一目标节点对应的第一子图,删除所述第二目标节点对应的第二子图与所述第一子图的差集;
将所述第二目标节点的后续节点的输入修改为所述第一子图的输出,得到所述优化后的计算图。
4.根据权利要求1至3任一所述的方法,其特征在于,所述对所述计算图进行图改写,得到优化后的计算图,包括:
响应于所述目标节点的子图属于第一类型,将属于所述第一类型的子图重写为属于第二类型的子图,得到所述优化后的计算图;
其中,所述第一类型的子图和所述第二类型的子图具有相同的计算结果,且所述第二类型的子图的计算性能优于所述第一类型的子图的计算性能。
5.根据权利要求1至3任一所述的方法,其特征在于,所述对所述前向计算序列中的各个节点进行算子代码编译,得到所述前向计算序列的第一算子代码,包括:
对所述前向计算序列中的各个节点,根据各个节点的节点类型采用即时编译器进行即时编译,得到所述节点对应的算子代码;
根据所述各个节点对应的算子代码,得到所述前向计算序列的第一算子代码。
6.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
将所述计算图中的变量节点直接或者间接到达的节点进行标记;
将所述前向计算序列进行反转,得到第一后向计算序列;
将所述第一后向计算序列中未被标记的节点进行删除,得到第二后向计算序列;
对所述第二后向计算序列中的各个节点进行算子代码编译,得到所述第二后向计...
【专利技术属性】
技术研发人员:张亚霏,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。