Shortcuts

GraphInfo

class torch.onnx.verification.GraphInfo(graph, input_args, params_dict, export_options=<factory>, id='', _EXCLUDED_NODE_KINDS=frozenset({'aten::ScalarImplicit', 'prim::Constant', 'prim::ListConstruct'}))[source]

GraphInfo contains validation information of a TorchScript graph and its converted ONNX graph.

all_mismatch_leaf_graph_info()[source]

Return a list of all leaf GraphInfo objects that have mismatch.

Return type

List[GraphInfo]

clear()[source]

Clear states and results of previous verification.

essential_node_count()[source]

Return the number of nodes in the subgraph excluding those in _EXCLUDED_NODE_KINDS.

Return type

int

essential_node_kinds()[source]

Return the set of node kinds in the subgraph excluding those in _EXCLUDED_NODE_KINDS.

Return type

Set[str]

export_repro(repro_dir=None, name=None)[source]

Export the subgraph to ONNX along with the input/output data for repro.

The repro directory will contain the following files:

dir
├── test_<name>
│   ├── model.onnx
│   └── test_data_set_0
│       ├── input_0.pb
│       ├── input_1.pb
│       ├── output_0.pb
│       └── output_1.pb
Parameters
  • repro_dir (Optional[str]) – The directory to export the repro files to. Defaults to current working directory if None.

  • name (Optional[str]) – An optional name for the test case folder: “test_{name}”.

Returns

The path to the exported repro directory.

Return type

str

find_mismatch(options=None)[source]

Find all mismatches between the TorchScript IR graph and the exported onnx model.

Binary searches the model graph to find the minimal subgraph that exhibits the mismatch. A GraphInfo object is created for each subgraph, recording the test inputs and export options, as well as the validation results.

Parameters

options (Optional[VerificationOptions]) – The verification options.

find_partition(id)[source]

Find the GraphInfo object with the given id.

Return type

Optional[GraphInfo]

has_mismatch()[source]

Return True if the subgraph has output mismatch between torch and ONNX.

Return type

bool

pretty_print_mismatch(graph=False)[source]

Pretty print details of the mismatch between torch and ONNX.

Parameters

graph (bool) – If True, print the ATen JIT graph and ONNX graph.

pretty_print_tree()[source]

Pretty print GraphInfo tree.

Each node represents a subgraph, showing the number of nodes in the subgraph and a check mark if the subgraph has output mismatch between torch and ONNX.

The id of the subgraph is shown under the node. The GraphInfo object for any subgraph can be retrieved by calling graph_info.find_partition(id).

Example:

==================================== Tree: =====================================
5 X   __2 X    __1 ✓
id:  |  id: 0 |  id: 00
     |        |
     |        |__1 X (aten::relu)
     |           id: 01
     |
     |__3 X    __1 ✓
        id: 1 |  id: 10
              |
              |__2 X     __1 X (aten::relu)
                 id: 11 |  id: 110
                        |
                        |__1 ✓
                           id: 111
=========================== Mismatch leaf subgraphs: ===========================
['01', '110']
============================= Mismatch node kinds: =============================
{'aten::relu': 2}
verify_export(options)[source]

Verify the export from TorchScript IR graph to ONNX.

Export the TorchScript IR graph to ONNX, with the inputs, parameters and export options recorded in this object. Then verify the exported ONNX graph against the original TorchScript IR graph under the provided verification options.

Parameters

options (VerificationOptions) – The verification options.

Returns

The AssertionError raised during the verification. Returns None if no error is raised. onnx_graph: The exported ONNX graph in TorchScript IR format. onnx_outs: The outputs from running exported ONNX model under the onnx backend in options. pt_outs: The outputs from running the TorchScript IR graph.

Return type

error

Docs

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources