先决条件 |ETRecord - ExecuTorch 记录¶
概述¶
ETRecord
旨在成为由
用户(当他们导出模型以在 ExecuTorch 上运行时)。
画一个粗略等同于常规软件开发的,可以认为是用 debug 符号构建的二进制文件
用于在 GNU 调试器 (gdb) 中进行调试。预计
用户将向 ExecuTorch 开发人员工具提供此文件,以便
他们来调试和可视化他们的模型。ETRecord
ETRecord
包含许多组件,例如:
带有调试句柄的 Edge dialect 图
委托调试句柄映射
对象本身对用户来说是不透明的,他们不应该直接访问其中的任何组件。
应将其提供给 Inspector API,以将源自运行时的性能和调试数据链接回 Python 源代码。ETRecord
生成ETRecord
¶
用户应使用以下 API 生成文件。他们
将需要提供 Edge Dialect 程序(由调用 )、
ExecuTorch 程序(由调用 返回 )和可选模型
他们有兴趣通过我们的工具进行合作。ETRecord
to_edge()
to_executorch()
警告
用户应对 的输出进行深层复制,并将深层复制传递给 API。这是必需的,因为后续调用 , 会进行就地更改,并且会在此过程中丢失调试数据。to_edge()
generate_etrecord
to_executorch()
- executorch.devtools.etrecord._etrecord。generate_etrecord(et_record, edge_dialect_program, executorch_program, export_modules=无)[来源]¶
从给定对象生成 ETRecord,对其进行序列化并将其保存到给定路径。 将序列化为 ETRecord 的对象是存在的所有图形模块 在 export_modules dict 中,Edge dialect 程序对象中存在的 Graph 模块, 以及 ExecuTorch 程序对象中存在的图形模块,该 是最终在设备上运行的内容的图形模块表示形式。 除了所有的图模块之外,我们还序列化了程序缓冲区,用户 可以提供给 ExecuTorch 运行时来运行模型,并且调试句柄映射 供 Developer Tools 使用。
- 参数
et_record – ETRecord 文件将保存到的路径。
edge_dialect_program – 调用 to_edge() 返回的此模型的 EdgeProgramManager
executorch_program – 通过调用 to_executorch() 或此模型的 BundledProgram 返回的此模型的 ExecuTorch 程序
[可选] (export_modules) – OSS 用户应忽略。图形模块的字典,键是用户提供的名称, 值是相应的导出模块。导出的图形模块可以是 torch.export() 或 exir.to_edge() 的输出。
- 返回
没有
使用ETRecord
¶
将 as 可选参数传递到 Inspector API 中,以访问此数据并执行运行后分析。ETRecord