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)[原始碼][原始碼]¶
將子圖連同輸入/輸出資料匯出為 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 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