图形信息
- classtorch.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 图的验证信息。
- all_mismatch_leaf_graph_info()[源代码]
-
返回所有存在差异的叶子 GraphInfo 对象的列表。
- clear()[源代码]
-
清除之前验证的状态和结果。
- essential_node_kinds()[源代码]
-
返回子图中排除了_EXCLUDED_NODE_KINDS的节点类型的集合。
- 返回类型
-
[ ]
- export_repro(repro_dir=None, name=None)[源代码]
-
将子图导出到 ONNX,并包含输入和输出数据以便复现结果。
repro 目录将包含以下文件:
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)[源代码]
-
找出 TorchScript IR 图与导出的 ONNX 模型之间所有的不一致之处。
在模型图中进行二分搜索,以找到表现出不匹配的最小的子图,并为每个子图创建一个GraphInfo对象,记录测试输入、导出选项及验证结果。
- 参数
-
options (VerificationOptions | None) — 配置验证的选项。
- pretty_print_mismatch(graph=False)[源代码]
-
漂亮地打印出torch和ONNX之间不匹配的详细信息。
- 参数
-
graph (bool) – 若设置为 True,则输出 ATen JIT 图和 ONNX 图。
- pretty_print_tree()[源代码]
-
漂亮地打印 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)[源代码]
-
验证从 TorchScript 中间表示图导出到 ONNX 的过程。
将TorchScript IR图导出为ONNX格式,并将输入、参数和导出选项记录在该对象中。然后根据提供的验证选项,对导出的ONNX图与原始的TorchScript IR图进行对比验证。
- 参数
-
options (VerificationOptions) - 验证选项。
- 返回值
-
在验证过程中引发的AssertionError,如果没有错误则返回None。onnx_graph:以TorchScript IR格式导出的ONNX图。onnx_outs:在options下使用onnx后端运行导出的ONNX模型时产生的输出。pt_outs:运行TorchScript IR图所产生的输出。
- 返回类型
-
错误