节点

onnx_graphsurgeon.Node(op: str, name: str | None = None, attrs: Dict[str, object] | None = None, inputs: List[Tensor] | None = None, outputs: List[Tensor] | None = None, domain: str | None = None)

基类: object

节点表示图中的一个操作,它消耗零个或多个张量,并产生零个或多个张量。

参数:
  • op (str) – 此节点执行的操作。

  • name (str) – 此节点的名称。

  • attrs (Dict[str, object]) – 将属性名称映射到其值的字典。

  • inputs (List[Tensor]) – 零个或多个输入张量的列表。

  • outputs (List[Tensor]) – 零个或多个输出张量的列表。

  • domain (str) – 此节点的域,

AttributeRef(name: str, type: type)

基类: object

AttributeRef 是一个属性值,它引用父函数中的一个属性。仅当节点位于函数内部时,节点的属性才能是 AttributeRef。

参数:
  • name (str) – 父函数中被引用属性的名称。

  • type (type) – 属性的类型。

i(tensor_idx=0, producer_idx=0)

便捷函数,用于获取此节点的一个输入张量的生产者节点。请注意,与 o() 函数相比,参数已交换;这是因为张量很可能只有一个生产者

例如

assert node.i() == node.inputs[0].inputs[0]
assert node.i(1, 2) == node.inputs[1].inputs[2]
参数:
  • tensor_idx (int) – 此节点的输入张量的索引。默认为 0。

  • producer_idx (int) – 输入张量的生产者的索引,如果张量有多个生产者。默认为 0

返回值:

指定的生产者(输入)节点。

返回类型:

节点

o(consumer_idx=0, tensor_idx=0)

便捷函数,用于获取此节点的一个输出张量的消费者节点。

例如

assert node.o() == node.outputs[0].outputs[0]
assert node.o(2, 1) == node.outputs[1].outputs[2]
参数:
  • consumer_idx (int) – 输出张量的消费者的索引。默认为 0。

  • tensor_idx (int) – 此节点的输出张量的索引,如果节点有多个输出。默认为 0。

返回值:

指定的消费者(输出)节点

返回类型:

节点

subgraphs(recursive=False)

便捷函数,用于迭代此节点中包含的所有子图。节点子图位于 ONNX 控制流节点(如“If”和“Loop”)的属性中。

参数:

recursive (bool) – 在查找子图时是否递归到子图节点中。默认为 False。

返回值:

一个迭代此节点的子图的生成器。

copy(inputs: List[Tensor] | None = None, outputs: List[Tensor] | None = None, tensor_map=None)

对此节点进行浅拷贝,覆盖输入和输出信息。

注意:通常,您应该只复制图。