onnx_diagnostic.torch_export_patches.patch_expressions¶
- onnx_diagnostic.torch_export_patches.patch_expressions.make_undefined_dimension(i: int) SymInt [source][source]¶
Uses for a custom op when a new dimension must be introduced to bypass some verification. The following function creates a dummy output with a dimension based on the content.
def symbolic_shape(x, y): return torch.empty( x.shape[0], make_undefined_dimension(min(x.shape[1], y[0])), )
- onnx_diagnostic.torch_export_patches.patch_expressions.patched_float_arange(start, end, step)[source][source]¶
Patched arange when start, end, step are floats.
- onnx_diagnostic.torch_export_patches.patch_expressions.patched_selector(fct: Callable, patched_fct: Callable) Callable [source][source]¶
Returns fct if the model is being executed or patched_fct if it is being exported.
- onnx_diagnostic.torch_export_patches.patch_expressions.register_patched_expressions(namespace: str = 'patched')[source][source]¶
Registers as custom ops known expressions failing due to dynamic shapes.
<<<
import pprint from onnx_diagnostic.torch_export_patches.patch_expressions import ( _iterate_patched_expressions, ) pprint.pprint([name for name, _f, _fsh in _iterate_patched_expressions()])
>>>
['float_arange']