目录

torch.onnx diagnostics信息

概述

注意:此功能尚在开发中,可能会有所更改。

目标是改进诊断功能,以帮助用户调试并优化其模型导出到 ONNX 的过程。

  • 诊断信息以机器可解析的静态分析结果交换格式 (SARIF)发出。

  • 一种更清晰、结构化的方式来添加新规则并跟踪诊断规则。

  • 作为未来改进诊断功能的基础。

诊断规则

API 参考

class torch.onnx._internal.diagnostics.ExportDiagnostic(*args, frames_to_skip=1, cpp_stack=False, **kwargs)[source]

所有导出诊断的基类。

此类用于表示所有导出诊断信息。它是 infra.Diagnostic 的一个子类,并添加了额外的方法,以向诊断信息中添加更多内容。

record_cpp_call_stack(frames_to_skip)[source]

在诊断信息中记录当前的 C++ 调用栈。

Return type:

堆栈

class torch.onnx._internal.diagnostics.infra.DiagnosticEngine[source]

基于 SARIF 的通用诊断引擎。

这个类是诊断功能的主要接口。它管理诊断上下文的创建。 DiagnosticContext 提供了记录诊断信息的入口点。 有关更多详细信息,请参见 infra.DiagnosticContext。

示例

步骤 1:创建一组规则。 >>> rules = infra.RuleCollection.custom_collection_from_list( … “CustomRuleCollection”, … [ … infra.Rule( … id=”r1”, … name=”rule-1”, … message_default_template=”Mising xxx”, … ), … ], … )

步骤 2:创建诊断引擎。 >>> engine = DiagnosticEngine()

步骤 3:启动一个新的诊断上下文。 >>> with engine.create_diagnostic_context("torch.onnx.export", version="1.0") as context: … …

步骤 4:在代码中添加诊断信息。 … context.diagnose(rules.rule1, infra.Level.ERROR)

步骤 5:之后,获取 SARIF 日志。 >>> sarif_log = engine.sarif_log()

clear()[source]

清除所有诊断上下文。

create_diagnostic_context(name, version, options=None, diagnostic_type=<class 'torch.onnx._internal.diagnostics.infra.engine.Diagnostic'>)[source]

创建一个新的诊断上下文。

Parameters:
  • 名称 (str) – 诊断上下文的主体名称。

  • 版本 (str) – 诊断上下文的主体版本。

  • 选项 (可选[诊断选项]) – 诊断上下文的选项。

Returns:

一个新的诊断上下文。

Return type:

DiagnosticContext

dump(file_path, compress=False)[source]

将 SARIF 日志转储到文件中。

pretty_print(verbose=False, level=Level.ERROR)[source]

美化打印所有诊断信息在诊断上下文中。

Parameters:
  • verbose (bool) – 是否以详细模式打印诊断信息。请参阅 Diagnostic.pretty_print。

  • 级别 (Level) – 要打印的诊断信息的最低级别。

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

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

查看资源