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}>`")
>>>
7:
CastPattern15:
DropoutPattern17:
ExpandPattern25:
GeluPattern27:
IdentityPattern30:
LeakyReluPattern31:
MatMulAddPattern40:
ReshapePattern69:
Sub1MulPattern72:
SwapUnaryPattern
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}>`")
>>>
11:
GeluErfPattern12:
GeluOrtPattern17:
QuickGeluPattern
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}>`")
>>>
11:
NegXplus1Pattern15:
SubMulPattern17:
TriMatrixPattern