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][source]¶
GraphInfo 包含 TorchScript 图及其转换后的 ONNX 图的验证信息。
- export_repro(repro_dir=None, name=None)[source][source]¶
将子图导出到 ONNX,并附带输入/输出数据以进行复现。
复现目录将包含以下文件
dir ├── test_<name> │ ├── model.onnx │ └── test_data_set_0 │ ├── input_0.pb │ ├── input_1.pb │ ├── output_0.pb │ └── output_1.pb
- find_mismatch(options=None)[source][source]¶
查找 TorchScript IR 图和导出的 onnx 模型之间的所有不匹配之处。
二分搜索模型图,以查找展示不匹配的最小子图。为每个子图创建一个 GraphInfo 对象,记录测试输入和导出选项,以及验证结果。
- 参数
options (VerificationOptions | None) – 验证选项。
- pretty_print_mismatch(graph=False)[source][source]¶
漂亮地打印 torch 和 ONNX 之间不匹配的详细信息。
- 参数
graph (bool) – 如果为 True,则打印 ATen JIT 图和 ONNX 图。
- pretty_print_tree()[source][source]¶
漂亮地打印 GraphInfo 树。
每个节点代表一个子图,显示子图中节点的数量,以及一个复选标记(如果子图在 torch 和 ONNX 之间存在输出不匹配)。
子图的 ID 显示在节点下方。可以通过调用 graph_info.find_partition(id) 来检索任何子图的 GraphInfo 对象。
示例
==================================== 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][source]¶
验证从 TorchScript IR 图到 ONNX 的导出。
将 TorchScript IR 图导出到 ONNX,其中包含此对象中记录的输入、参数和导出选项。然后,在提供的验证选项下,针对原始 TorchScript IR 图验证导出的 ONNX 图。
- 参数
options (VerificationOptions) – 验证选项。
- 返回
验证期间引发的 AssertionError。如果未引发错误,则返回 None。 onnx_graph:以 TorchScript IR 格式导出的 ONNX 图。 onnx_outs:在 options 中 onnx 后端下运行导出的 ONNX 模型的输出。 pt_outs:运行 TorchScript IR 图的输出。
- 返回类型
error