快捷方式

常見問題

本頁彙總了常見問題,並提供了採用 ExecuTorch 時常遇到問題的指導。

如果此處未涵蓋特定問題,請考慮在 GitHub 的 IssuesDiscussions 中搜索或建立問題。

安裝

缺少 /usr/include/python3.x

很可能需要安裝 python-dev 庫。請執行

sudo apt install python<version>-dev

如果您使用 Ubuntu,或者使用等效的安裝命令。

匯出

缺少 out 變體: { _ }

模型可能包含 torch 自定義運算子。自定義運算子需要 Executorch 實現,並且需要在匯出時載入。請參閱ExecuTorch 自定義運算子文件,瞭解具體操作方法。

RuntimeError: op _ 的 PyTorch 轉換函式未實現

模型可能包含 ExecuTorch 尚不支援的運算子。在這種情況下,請考慮在 GitHub 上搜索或建立問題。

執行時

ExecuTorch 錯誤碼定義在 executorch/core/runtime/error.h 中。

推理緩慢 / 效能故障排除

如果從原始碼構建執行時,請確保構建在釋出模式下完成。對於 CMake 構建,可以透過傳遞 -DCMAKE_BUILD_TYPE=Release 來實現。

確保模型已委託。如果未針對特定加速器,請使用 XNNPACK 委託以提高 CPU 效能。未委託的運算子通常會回退到 ExecuTorch 可移植庫,該庫設計為備用,不適用於效能敏感的運算子。要針對 XNNPACK,請將 XnnpackPartitioner 傳遞給 to_edge_transform_and_lower。有關更多資訊,請參閱使用 XNNPACK 後端構建和執行 ExecuTorch

執行緒數對 CPU 效能有顯著影響。最佳執行緒數可能取決於模型和應用程式。預設情況下,ExecuTorch 目前會使用與核心數一樣多的執行緒。考慮將執行緒數設定為核心數 / 2,或者在移動 CPU 上直接設定為 4。

可以使用以下函式設定執行緒數。請確保在載入或執行模型之前完成此操作。

::executorch::extension::threadpool::get_threadpool()->_unsafe_reset_threadpool(num_threads);

為了更深入地研究模型效能,ExecuTorch 支援運算子級別的效能分析。有關更多資訊,請參閱使用 ExecuTorch 開發者工具對模型進行效能分析

缺少日誌

ExecuTorch 提供了用於路由執行時日誌的鉤子。預設情況下,日誌會發送到 stdout/stderr,但使用者可以覆蓋 et_pal_emit_log_message 將日誌路由到自定義目標。Android 和 iOS 擴充套件還提供開箱即用的日誌路由到相應的平臺日誌。有關更多資訊,請參閱執行時平臺抽象層 (PAL)

設定輸入錯誤: 0x10 / 嘗試調整有界 Tensor 大小…

這通常意味著提供的輸入與模型匯出期間使用的示例輸入的形狀不匹配。如果模型預計處理可變大小的輸入(動態形狀),請確保模型匯出指定了適當的邊界。有關指定動態形狀的更多資訊,請參閱表達動態性

錯誤 0x14(運算子缺失)

這通常意味著選擇性構建配置不正確。請確保運算子庫是從當前版本的模型生成的,並且相應的 et_operator_library 是應用級別 executorch_generated_lib 的依賴項,並且生成的庫已連結到應用程式中。

如果 ExecuTorch 可移植庫尚未實現給定 ATen 運算子,也可能發生此問題。在這種情況下,請考慮在 GitHub 上搜索或建立問題。

錯誤 0x20(未找到)

此錯誤可能由於多種原因發生,但最常見的是缺少後端目標。請確保已連結相應的後端目標。對於 XNNPACK,即 xnnpack_backend。如果後端已連結但仍不可用,請嘗試使用 --whole-archive 進行連結:-Wl,--whole-archive libxnnpack_backend.a -Wl,--no-whole-archive

重複核心註冊中止

這表現為崩潰呼叫堆疊包含 ExecuTorch 核心註冊,並因 et_pal_abort 而失敗。這通常意味著應用程式中連結了多個 gen_operators_lib 目標。每個目標只能有一個生成的運算子庫,儘管每個模型可以有自己的 gen_selected_ops/generate_bindings_for_kernels 呼叫。

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源