Available Patterns#

Default Patterns#

<<<

from yobx.xoptim import get_pattern_list

names = sorted(
    [(pat.__class__.__name__, pat.__module__) for pat in get_pattern_list("default")]
)
for i, (name, module) in enumerate(names):
    print(f"* {i+1}: :class:`{name} <{module}.{name}>`")

>>>

Patterns specific to onnxruntime#

<<<

from yobx.xoptim import get_pattern_list

names = sorted(
    [
        (pat.__class__.__name__, pat.__module__)
        for pat in get_pattern_list("onnxruntime")
    ]
)
for i, (name, module) in enumerate(names):
    print(f"* {i+1}: :class:`{name} <{module}.{name}>`")

>>>

Patterns specific to ai.onnx.ml#

<<<

from yobx.xoptim import get_pattern_list

names = sorted(
    [(pat.__class__.__name__, pat.__module__) for pat in get_pattern_list("ml")]
)
for i, (name, module) in enumerate(names):
    print(f"* {i+1}: :class:`{name} <{module}.{name}>`")

>>>

Experimental Patterns#

This works on CUDA with onnx-extended.

<<<

from yobx.xoptim import get_pattern_list

names = sorted(
    [
        (pat.__class__.__name__, pat.__module__)
        for pat in get_pattern_list("experimental")
    ]
)
for i, (name, module) in enumerate(names):
    print(f"* {i+1}: :class:`{name} <{module}.{name}>`")

>>>

Pattern Optimization Environment Variables#

When the ONNX graph is optimized with the pattern optimizer, additional environment variables can help trace which patterns are applied and narrow down optimization problems (see Debugging Environment Variables for the full documentation).