导出 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.ac.cn/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, named_data=None)[源码]¶
以 Execution 方言打包的一个或多个 ExportedPrograms。旨在简化到 ExecuTorch 的降低过程。参见:https://pytorch.ac.cn/executorch/stable/ir-exir.html
构建 ExecutorchProgramManager 时,使用 Execution 方言中的 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 中的规范一对一打印二进制文件。
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( edge_program: ExportedProgram, partitioner: Partitioner, ) -> ExportedProgram:
- class executorch.exir.backend.backend_api.LoweredBackendModule(edge_program, backend_id, processed_bytes, compile_specs, named_data_store_output=None)[源码]¶
这是一个 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)[源码]¶
返回包含序列化 ExecuTorch 二进制文件的缓冲区。
- property compile_specs¶
返回一个包含特定于后端对象的列表,这些对象包含用于配置“编译”过程的静态元数据。
- property original_module¶
返回原始的 EXIR 模块
- property processed_bytes¶
返回由 backend.preprocess 创建的委托 blob