开发者
资源

简介

本节介绍两种通过Pass修改Graph的方式,两种Pass实现区别如下:

表1 两种Pass实现方式比较

改图方式

基于Pattern匹配实现Pass(推荐)

基于改图接口实现Pass

核心思路

通过Pattern定义匹配模板,框架自动完成匹配查找,开发者只需定义替换结构。

直接编写改图函数,手动遍历图结构、查找节点、创建新节点、建立边连接、删除旧节点。

关键特性

只需要三步:匹配→决策→替换

  • Patterns:定义匹配的模板拓扑
  • MeetRequirements:条件筛选(可选)
  • Replacement:定义替换结构
  • 需手动实现节点查找、边处理、节点增删等操作
  • 代码量大,需要处理所有图修改细节

适用场景

未触发约束,即可使用该开发方式

  • 简单、一次性修改场景
  • 直接调用改图接口实时调整图结构
  • 对图结构有完全控制需求

约束

  • 控制边:框架不支持控制依赖匹配,仅支持数据边匹配
  • 子图(subgraph):不支持嵌套子图结构,Pattern必须是扁平的DAG(Directed Acyclic Graph,有向无环图)
  • 动态输入/输出节点:输入/输出个数不确定会导致匹配歧义,无法精确定位

-