onnx_ir.traversal

遍历 IR 图的实用工具。

class onnx_ir.traversal.RecursiveGraphIterator(graph_like, *, recursive=None, reverse=False, enter_graph=None, exit_graph=None)[source]
参数:
  • graph_like (GraphLike)

  • recursive (Callable[[_core.Node], bool] | None)

  • reverse (bool)

  • enter_graph (Callable[[GraphLike], None] | None)

  • exit_graph (Callable[[GraphLike], None] | None)

__abstractmethods__ = frozenset({})
__annotations__ = {}
__dict__ = mappingproxy({'__module__': 'onnx_ir.traversal', '__init__': <function RecursiveGraphIterator.__init__>, '__iter__': <function RecursiveGraphIterator.__iter__>, '__next__': <function RecursiveGraphIterator.__next__>, '_recursive_node_iter': <function RecursiveGraphIterator._recursive_node_iter>, '_iterate_subgraphs': <function RecursiveGraphIterator._iterate_subgraphs>, '__reversed__': <function RecursiveGraphIterator.__reversed__>, '__orig_bases__': (collections.abc.Iterator[onnx_ir.Node], collections.abc.Reversible[onnx_ir.Node]), '__dict__': <attribute '__dict__' of 'RecursiveGraphIterator' objects>, '__weakref__': <attribute '__weakref__' of 'RecursiveGraphIterator' objects>, '__doc__': None, '__abstractmethods__': frozenset(), '_abc_impl': <_abc._abc_data object>, '__annotations__': {}})
__init__(graph_like, *, recursive=None, reverse=False, enter_graph=None, exit_graph=None)[source]

迭代图中的节点,递归访问子图。

此迭代器允许以深度优先的方式遍历图及其子图中的节点。它支持可选的回调函数,用于进入和退出子图,以及一个 recursive 回调函数,用于确定是否访问节点中包含的子图。

版本 0.1.6 中新增: 增加了 enter_graphexit_graph 回调。

参数:
  • graph_like (Graph | Function | GraphView) – 要遍历的图。

  • recursive (Callable[[Node], bool] | None) – 一个回调函数,用于确定是否递归访问节点中包含的子图。如果未提供,则访问子图中的所有节点。

  • reverse (bool) – 是否以相反顺序迭代。

  • enter_graph (Callable[[Graph | Function | GraphView], None] | None) – 进入子图时调用的可选回调函数。

  • exit_graph (Callable[[Graph | Function | GraphView], None] | None) – 退出子图时调用的可选回调函数。

__iter__()[source]
返回类型:

自身

__module__ = 'onnx_ir.traversal'
__next__()[source]

返回迭代器中的下一个项。当耗尽时,引发 StopIteration。

返回类型:

Node

__orig_bases__ = (collections.abc.Iterator[onnx_ir.Node], collections.abc.Reversible[onnx_ir.Node])
__reversed__()[source]
返回类型:

Iterator[Node]

__weakref__

对对象的弱引用列表(如果已定义)