匯出至 ExecuTorch API 參考¶
有關 API 如何演變以及棄用流程的詳細資訊,請參閱ExecuTorch API 生命周期和棄用政策。
- class executorch.exir.EdgeProgramManager(edge_programs, constant_methods=None, compile_config=None, ops_set_to_not_decompose=None)[原始碼]¶
在 Edge 方言中,一個或多個 ExportedPrograms 的封裝。旨在簡化降低到 ExecuTorch 的過程。請參閱: https://pytorch.dev.org.tw/executorch/stable/ir-exir.html
允許跨匯出的程式集合輕鬆應用轉換,包括子圖的委派。
管理 ATen -> Edge -> ExecuTorch 降低鏈中的第二個鏈結。
- property config_methods¶
傳回此 EdgeProgramManager 中的組態方法集合。
- property methods¶
傳回此 EdgeProgramManager 中的方法集合。
- class executorch.exir.ExecutorchProgramManager(execution_programs, config_methods=None, backend_config=None)[原始碼]¶
在 Execution 方言中,一個或多個 ExportedPrograms 的封裝。旨在簡化降低到 ExecuTorch 的過程。請參閱: https://pytorch.dev.org.tw/executorch/stable/ir-exir.html
當建構 ExecutorchProgramManager 時,執行方言中的 ExportedPrograms 會被用來形成 executorch 二進位檔(在一個稱為發射 (emission) 的過程中),然後序列化到緩衝區。
管理 ATen -> Edge -> ExecuTorch 降低鏈中的最後一個鏈結。
- property buffer¶
傳回序列化的 ExecuTorch 二進位檔作為位元組字串。
請注意,呼叫 buffer 可能會配置非常大量的連續記憶體,取決於模型大小。如果寫入檔案,請使用 write_to_file,這不會產生額外的副本。
- property config_methods¶
傳回此 ExecutorchProgramManager 中的組態方法集合。
- dump_executorch_program(verbose=False, out=None)[原始碼]¶
以人類可讀的格式印出 ExecuTorch 二進位檔。
- 參數
verbose (bool) – 如果為 False,則以精簡格式印出二進位檔。 如果為 True,則按照 schema 中的規範 1-1 印出二進位檔。
out –
如果為 None,則印出到 stdout。 如果非 None,則將字串寫入該流物件。 它可以是
檔案物件、StringIO 物件或任何其他 TextIO 子類別。
- property methods¶
傳回此 ExecutorchProgramManager 中的方法集合。
- executorch.exir.backend.backend_api.to_backend(args)[原始碼]¶
- executorch.exir.backend.backend_api.to_backend(backend_id, edge_program, compile_specs)
- executorch.exir.backend.backend_api.to_backend(edge_program, partitioner_instance)
一個泛型函式,分派發生在第一個引數的類型上。目前有 to_backend 函式的多載。
注意:Python 是一種動態類型語言,因此無法進行適當的方法多載,因為這需要該語言能夠在編譯時區分類型。 @to_backend.register 會根據第一個引數的類型將函式附加到 to_backend() (需要類型註解)。 但是,它不能將多個類型作為引數。
def to_backend( backend_id: str, edge_graph_module: ExportedProgram, compile_specs: List[CompileSpec], ) -> LoweredBackendModule: def to_backend( graph_module: torch.fx.GraphModule, partitioner: Type[TPartitioner], ) -> torch.fx.GraphModule
- class executorch.exir.backend.backend_api.LoweredBackendModule(edge_program, backend_id, processed_bytes, compile_specs)[source]¶
nn.Module 的子類別,為包含委派函數的模組所產生。這可以透過呼叫 to_backend 來建立。
- property backend_id¶
回傳後端的名稱。
- buffer(extract_delegate_segments=False, segment_alignment=128, constant_tensor_alignment=None, delegate_alignment=None, memory_planning=None)[source]¶
回傳包含序列化 ExecuTorch 二進位檔案的 buffer。
- property compile_specs¶
回傳 backend 專用物件的列表,其中包含用於配置「編譯」過程的靜態元數據。
- property original_module¶
回傳原始的 EXIR 模組
- property processed_bytes¶
回傳從 backend.preprocess 建立的委派 blob。