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}>`")
>>>
8:
CastPattern16:
DropoutPattern18:
ExpandPattern27:
GeluPattern29:
IdentityPattern32:
LeakyReluPattern33:
MatMulAddPattern37:
NotNotPattern38:
NotWherePattern46:
ReshapePattern75:
Sub1MulPattern78:
SwapUnaryPattern92:
WhereAddPattern
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:
GeluOrtPattern20:
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