• 文件 >
  • 先決條件 | ETRecord - ExecuTorch Record
快捷方式

先決條件 | ETRecord - ExecuTorch Record

概述

ETRecord 旨在成為使用者在匯出模型以在 ExecuTorch 上執行之前預先生成的除錯工件。與傳統的軟體開發做一個粗略類比,ETRecord 可以被視為用於 GNU 偵錯程式 (gdb) 進行除錯的、包含除錯符號的二進位制檔案。使用者預計會將此提供給 ExecuTorch 開發者工具,以便他們除錯和視覺化模型。

ETRecord 包含多種元件,例如

  • 帶有除錯控制代碼的 Edge dialect 圖

  • Delegate 除錯控制代碼對映

ETRecord 物件本身對使用者來說是不可見的,使用者不應直接訪問其中的任何元件。應將其提供給 檢查器 API,以便將來自執行時的效能和除錯資料鏈接回 Python 原始碼。

生成 ETRecord

使用者應使用以下 API 生成 ETRecord 檔案。使用者需要提供 Edge Dialect 程式(to_edge() 呼叫返回的結果)、ExecuTorch 程式(to_executorch() 呼叫返回的結果),以及他們有興趣透過我們的工具進行處理的可選模型。

警告

使用者應對 to_edge() 的輸出進行深度複製,並將此深度複製後的結果傳遞給 generate_etrecord API。這是必需的,因為後續的 to_executorch() 呼叫會進行原地修改,並在此過程中丟失除錯資料。

executorch.devtools.etrecord._etrecord.generate_etrecord(et_record, edge_dialect_program, executorch_program, export_modules=None)[原始檔]

從給定物件生成一個 ETRecord,將其序列化並儲存到指定路徑。將序列化到 ETRecord 中的物件包括 export_modules 字典中存在的所有圖模組、edge dialect 程式物件中存在的圖模組,以及 ExecuTorch 程式物件中存在的圖模組(這是最終在裝置上執行的內容的最接近的圖模組表示)。除了所有圖模組外,我們還序列化程式緩衝區(使用者可以將其提供給 ExecuTorch 執行時來執行模型)以及用於開發者工具的除錯控制代碼對映。

引數
  • et_recordETRecord 檔案將儲存到的路徑。

  • edge_dialect_program – 透過呼叫 to_edge() 為此模型返回的 EdgeProgramManager

  • executorch_program – 透過呼叫 to_executorch() 返回的此模型的 ExecuTorch 程式,或此模型的 BundledProgram

  • [可選] (export_modules) – OSS 使用者應忽略此引數。圖模組的字典,其中鍵是使用者提供的名稱,值是相應的匯出模組。匯出的圖模組可以是 torch.export()exir.to_edge() 的輸出。

返回

使用 ETRecord

ETRecord 作為可選引數傳遞給 檢查器 API,以訪問此資料並進行後執行分析。

文件

訪問 PyTorch 的全面開發者文件

檢視文件

教程

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

檢視教程

資源

查詢開發資源並解答問題

檢視資源