onnx_diagnostic.torch_export_patches.eval¶
- onnx_diagnostic.torch_export_patches.eval.discover()[source][source]¶
Discovers all model cases used to evaluate an exporter.
<<<
import pprint from onnx_diagnostic.torch_export_patches.eval import discover pprint.pprint(discover())
>>>
{'AtenAsStrided': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.AtenAsStrided'>, 'AtenInterpolate': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.AtenInterpolate'>, 'AtenNonZero': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.AtenNonZero'>, 'AtenNonZeroTuple': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.AtenNonZeroTuple'>, 'AtenRollPos': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.AtenRollPos'>, 'AtenRollRelu': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.AtenRollRelu'>, 'BuildInIsInstance': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.BuildInIsInstance'>, 'BuildInLen': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.BuildInLen'>, 'ComplexPolar': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ComplexPolar'>, 'ControlFlowCond': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowCond'>, 'ControlFlowCond2Inputs': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowCond2Inputs'>, 'ControlFlowCond2Outputs': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowCond2Outputs'>, 'ControlFlowCondConstant': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowCondConstant'>, 'ControlFlowCondIdentity_153832': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowCondIdentity_153832'>, 'ControlFlowCondNestedModule': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowCondNestedModule'>, 'ControlFlowCondNonZero': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowCondNonZero'>, 'ControlFlowNestCond': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowNestCond'>, 'ControlFlowScan': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowScan'>, 'ControlFlowScan2Carried': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowScan2Carried'>, 'ControlFlowScanCDist': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowScanCDist'>, 'ControlFlowScanCDist2': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowScanCDist2'>, 'ControlFlowScanCDistXY': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowScanCDistXY'>, 'ControlFlowScanDecomposition_151564': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowScanDecomposition_151564'>, 'ControlFlowScanInplace_153705': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.ControlFlowScanInplace_153705'>, 'CreateFromShape': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.CreateFromShape'>, 'CreateFromShapeThroughFunction': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.CreateFromShapeThroughFunction'>, 'CropLastDimensionWithTensorContent': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.CropLastDimensionWithTensorContent'>, 'CropLastDimensionWithTensorShape': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.CropLastDimensionWithTensorShape'>, 'InplaceAdd': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceAdd'>, 'InplaceAdd2': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceAdd2'>, 'InplaceAdd_Mul': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceAdd_Mul'>, 'InplaceCloneAdd_': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceCloneAdd_'>, 'InplaceSetItemEllipsis_1': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceSetItemEllipsis_1'>, 'InplaceSetItemEllipsis_2': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceSetItemEllipsis_2'>, 'InplaceSetItemMask': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceSetItemMask'>, 'InplaceSetItemSquare': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceSetItemSquare'>, 'InplaceSetItemSquareAdd': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceSetItemSquareAdd'>, 'InplaceSetItemSquareAdd2': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.InplaceSetItemSquareAdd2'>, 'SignatureFloat1': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.SignatureFloat1'>, 'SignatureInt1': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.SignatureInt1'>, 'SignatureInt2': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.SignatureInt2'>, 'SignatureListFixedLength': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.SignatureListFixedLength'>, 'SignatureListFixedWithNone': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.SignatureListFixedWithNone'>, 'SignatureListVariableLength': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.SignatureListVariableLength'>, 'SignatureShapeAsIndex': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.SignatureShapeAsIndex'>, 'TypeBFloat16': <class 'onnx_diagnostic.torch_export_patches.eval.model_cases.TypeBFloat16'>}
- onnx_diagnostic.torch_export_patches.eval.evaluation(exporters: Tuple[str] = ('export-strict', 'export-nostrict', 'export-nostrict-decall'), dynamic: Tuple[bool] = (False, True), cases: str | Dict[str, type] | None = None, verbose: int = 0, quiet: bool = True) List[Dict[str, Any]] [source][source]¶
Evaluates exporter for a list of cases.
- Parameters:
exporters – exporters to evaluate
dynamic – evaluate static shape and dynamic shapes
cases – model cases to evaluate
verbose – verbosity
quiet – catch exception
- Returns:
results, list of dictionaries
- onnx_diagnostic.torch_export_patches.eval.run_exporter(exporter: str, cls_model: type, dynamic: bool = False, quiet: bool = False, verbose: int = 0) Dict[str, Any] [source][source]¶
Runs an exporter and returns whether it fails or not.
- Parameters:
exporter – exporter
cls_model – model class to create
inputs – list of inputs to try
dynamic – use dynamic shape or not
quiet – raise exception or not
verbose – verbosity
- Returns:
results