先决条件 | ETRecord - ExecuTorch 记录¶
概览¶
ETRecord 是用户在将模型导出以在 ExecuTorch 上运行之前生成的调试工件。为了与传统的软件开发进行粗略类比,ETRecord 可以被视为带有调试符号的二进制文件,用于在 GNU 调试器 (gdb) 中进行调试。用户应提供此文件给 ExecuTorch 开发者工具,以便他们能够调试和可视化他们的模型。
ETRecord 包含许多组件,例如:
边缘方言图带调试句柄
委托调试处理映射
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)[source]¶
从给定的对象生成一个 ETRecord,对其进行序列化并保存到指定路径。 将被序列化为 ETRecord 的对象包括 export_modules 字典中的所有图模块, 边方言程序对象中的图模块,以及 ExecuTorch 程序对象中的图模块, 后者是最终在设备上运行的最接近的图模块表示。 除了所有图模块之外,我们还会序列化程序缓冲区,用户可以将其提供给 ExecuTorch 运行时以运行模型, 以及调试句柄映射,供开发者工具使用。
- Parameters
et_record – 保存 ETRecord 文件的路径。
edge_dialect_program – EdgeProgramManager 该模型通过调用 to_edge() 返回
executorch_program – 该模型调用 to_executorch() 或 BundledProgram 返回的 ExecuTorch 程序
[可选] (export_modules) – OSS用户应忽略此内容。一个包含图模块的字典,键为用户提供的名称,值为对应的导出模块。导出的图模块可以是 torch.export() 或 exir.to_edge() 的输出。
- Returns
请提供需要翻译的单词列表。
使用一个 ETRecord¶
将 ETRecord 作为可选参数传递给 Inspector API,以访问此数据并进行运行后分析。