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