• 文件 >
  • 匯出至 ExecuTorch API 參考
捷徑

匯出至 ExecuTorch API 參考

有關 API 如何演變以及棄用流程的詳細資訊,請參閱ExecuTorch API 生命周期和棄用政策

executorch.exir.to_edge(self, *args, **kwargs)[來源]
executorch.exir.to_edge_transform_and_lower(self, *args, **kwargs)[原始碼]
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 中的組態方法集合。

exported_program(method_name='forward')[原始碼]

傳回 ‘method_name’ 指定的 ExportedProgram。

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 子類別。

exported_program(method_name='forward')[原始碼]

傳回 ‘method_name’ 指定的 ExportedProgram。

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。

文件

存取 PyTorch 的全面開發人員文件

檢視文件

教學

取得初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並取得您的問題解答

檢視資源