• 文档 >
  • 先决条件 | ETRecord - ExecuTorch 记录
快捷方式

先决条件 | ETRecord - ExecuTorch 记录

概述

ETRecord 旨在成为用户在提前生成(将模型导出到 ExecuTorch 上运行时)的调试工件。粗略地与传统软件开发进行比较,ETRecord 可以视为在 GNU 调试器 (gdb) 中用于调试的带有调试符号的二进制文件。用户应将其提供给 ExecuTorch SDK 工具,以便他们调试和可视化其模型。

ETRecord 包含许多组件,例如

  • 带有调试句柄的边缘方言图

  • 委托调试句柄映射

ETRecord 对象本身对于用户而言是模糊的,他们不应直接访问其中的任何组件。应将其提供给 检查器 API,以将来自运行时的性能和调试数据链接回 Python 源代码。

生成 ETRecord

用户应使用以下 API 生成 ETRecord 文件。他们需要提供 Edge 方言程序(由对 to_edge() 的调用返回)、ExecuTorch 程序(由对 to_executorch() 的调用返回)以及他们有兴趣通过我们的工具处理的可选模型。

警告

用户应对 to_edge() 的输出执行深度复制,并将深度复制传递给 generate_etrecord API。这是必需的,因为后续调用 to_executorch() 会执行就地突变,并且在此过程中会丢失调试数据。

executorch.sdk.etrecord._etrecord.generate_etrecord(etrecord_path, edge_dialect_program, executorch_program, export_modules=None)[source]

根据给定的对象生成 ETRecord,对其进行序列化并将其保存到给定的路径。将序列化为 ETRecord 的对象是 export_modules 字典中存在的所有图模块、Edge 方言程序对象中存在的图模块以及 ExecuTorch 程序对象中存在的图模块,该对象是最终在设备上运行的内容最接近的图模块表示。除了所有图模块外,我们还序列化程序缓冲区(用户可以将其提供给 ExecuTorch 运行时以运行模型)以及用于 SDK 工具的调试句柄映射。

参数
  • etrecord_path – 将 ETRecord 文件保存到的路径。

  • edge_dialect_program – 由对 to_edge() 的调用返回的此模型的 EdgeProgramManager

  • executorch_program – 由对 to_executorch() 的调用或此模型的 BundledProgram 返回的此模型的 ExecuTorch 程序

  • export_modules[可选]OSS 用户应忽略。图模块的字典,其中键是用户提供的名称,值是相应的导出模块。导出的图模块可以是 torch.export()exir.to_edge() 的输出。

返回

使用 ETRecord

ETRecord 作为可选参数传递到 Inspector API 中,以访问此数据并执行运行后分析。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取适合初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源