节点¶
- class onnx_ir.Node(domain, op_type, inputs, attributes=(), *, overload='', num_outputs=None, outputs=None, version=None, graph=None, name=None, doc_string=None, metadata_props=None)¶
IR 节点。
提示
要以更方便的方式(支持 Python 对象作为属性)创建节点,请使用
onnx_ir.node()构造函数。如果提供了
graph,则该节点将被添加到图中。否则,用户需要负责调用graph.append(node)(或Graph中的其他修改方法)将该节点添加到图中。节点初始化后,它会将自己添加为其输入值的用户。
节点的输出值在节点初始化期间创建,并且是不可变的。要更改输出值,请创建一个新节点,并对于旧输出的每个使用(
output.uses()),通过调用replace_input_with()替换使用节点中的输入。您还可以使用replace_all_uses_with()方法替换输出值的所有使用。注意
当
domain为"ai.onnx"时,它被规范化为""。- 参数:
- doc_string¶
- append(nodes)[source]¶
在图中此节点之后插入节点。
它等同于调用
graph.insert_after(self, nodes)。示例
Before: previous_node -> self previous_node' -> node -> next_node' After: previous_node -> self -> node previous_node' -> next_node'
- property attributes: Attributes¶
节点的属性,表示为
dict[str, Attr],并附带额外的访问方法。将其用作字典,键是属性名称,值是
Attr对象。使用
node.attributes.add(attr)向节点添加属性。使用node.attributes.get_int(name, default)获取整数属性值。有关更多方法,请参阅Attributes。
- property inputs: Sequence[Value | None]¶
节点的输入值。
输入是不可变的。要更改输入,请创建一个新节点,并通过在此节点输出的使用节点上调用
replace_input_with()来替换使用节点的输入。
- property meta: MetadataStore¶
用于中间分析的元数据存储。
如果您希望元数据被序列化为 ONNX proto,请写入
metadata_props。
- property outputs: Sequence[Value]¶
节点的输出值。
输出一旦初始化便始终附加到此节点(不可变),除了列表可以调整大小以删除或添加输出。
使用
resize_outputs()更改节点的输出数量。
- prepend(nodes)[source]¶
在图中此节点之前插入节点。
它等同于调用
graph.insert_before(self, nodes)。示例
Before: previous_node -> self previous_node' -> node -> next_node' After: previous_node -> node -> self previous_node' -> next_node'
- resize_inputs(new_size, /)[source]¶
调整节点输入的大小。
如果新大小大于当前大小,则添加新的输入作为 None。如果新大小小于当前大小,则移除多余的输入。
调整
inputs大小后,可以使用replace_input_with()设置新的输入。在 0.1.13 版本中添加。
- 参数:
new_size (int) – 新的输入数量。
- 返回类型:
无
- resize_outputs(new_size, /)[source]¶
调整节点输出的大小。
如果新大小大于当前大小,则创建新的输出值。如果新大小小于当前大小,则移除多余的输出值。被移除的输出值不得有任何用途。
在 0.1.13 版本中添加。
- 参数:
new_size (int) – 新的输出数量。
- 引发:
ValueError – 如果新大小小于当前大小且被移除的输出有用途。
- 返回类型:
无