Available Patterns

Default Patterns

<<<

from experimental_experiment.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 experimental_experiment.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 experimental_experiment.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 experimental_experiment.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}>`")

>>>