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

先决条件 | ETRecord - ExecuTorch 记录

概述

ETRecord旨在成为用户提前(当他们导出其模型以在 ExecuTorch 上运行时)生成的调试工件。为了与传统的软件开发进行粗略的等效比较,ETRecord可以被视为使用调试符号构建的二进制文件,该文件用于在 GNU Debugger (gdb) 中进行调试。预计用户将将其提供给 ExecuTorch SDK 工具,以便他们调试和可视化其模型。

ETRecord包含许多组件,例如

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

  • 委托调试句柄映射

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

生成 ETRecord

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

警告

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

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

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

参数
  • etrecord_pathETRecord 文件将被保存到的路径。

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

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

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

返回值

使用 ETRecord

ETRecord作为可选参数传递给检查器 API 以访问此数据并进行运行后分析。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

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

查看资源