NameFixPass¶

class onnx_ir.passes.common.NameFixPass(name_generator=None)[source]¶

Pass for fixing names to ensure all values and nodes have unique names.

This pass ensures that: 1. Graph inputs and outputs have unique names (take precedence) 2. All intermediate values have unique names (assign names to unnamed values) 3. All values in subgraphs have unique names within their graph and parent graphs 4. All nodes have unique names within their graph

The pass maintains global uniqueness across the entire model.

You can customize the name generation functions for nodes and values by passing a subclass of NameGenerator.

For example, you can use a custom naming scheme like this:

class CustomNameGenerator:
    def custom_node_name(node: ir.Node) -> str:
        return f"custom_node_{node.op_type}"

    def custom_value_name(value: ir.Value) -> str:
        return f"custom_value_{value.type}"

name_fix_pass = NameFixPass(name_generator=CustomNameGenerator())

Added in version 0.1.6.

Parameters:

name_generator (NameGenerator | None)

call(model)[source]¶

The main entry point for the pass.

Parameters:

model (Model)

Return type:

PassResult