torch.onnx diagnostics¶
概述¶
注意:此功能正在开发中,可能会发生更改。
目标是改进诊断,以帮助用户调试和改进其模型导出到 ONNX。
诊断信息以机器可解析的静态分析结果交换格式 (SARIF) 发出。
一种新的、更清晰、结构化的方式来添加新的诊断规则并跟踪诊断规则。
作为未来使用诊断的更多改进的基础。
诊断规则¶
- DIAGSYS0001:arg-format-too-verbose
- FXE0001:fx-tracer-success
- FXE0002:fx-tracer-failure
- FXE0003:fx-frontend-aotautograd
- FXE0004:fx-pass-convert-neg-to-sigmoid
- FXE0005:fx-ir-add-node
- FXE0006:atenlib-symbolic-function
- FXE0007:atenlib-fx-to-onnx
- FXE0008:fx-node-to-onnx
- FXE0009:fx-frontend-dynamo-make-fx
- POE0001:node-missing-onnx-shape-inference
- POE0002:缺少自定义符号函数
- POE0003:missing-standard-symbolic-function
- POE0004:operator-supported-in-newer-opset-version
API 参考¶
- 类 torch.onnx._internal.diagnostics。ExportDiagnostic(*args, frames_to_skip=1, cpp_stack=False, **kwargs)[来源]¶
所有导出诊断的基类。
此类用于表示所有导出诊断。它是 下Diagnostic,并添加其他方法以向 诊断。
- 类 torch.onnx._internal.diagnostics.infra。DiagnosticEngine[来源]¶
基于 SARIF 的通用诊断引擎。
此类是诊断的主接口。它管理诊断上下文的创建。 DiagnosticContext 提供用于记录 Diagnostics 的入口点。 见下文。DiagnosticContext 了解更多详情。
例子
第 1 步:创建一组规则。 >>> rules = infra.RuleCollection.custom_collection_from_list( …“CustomRuleCollection”、 …[ …下规则 ( …id=“r1”, …name=“rule-1”, 则 …message_default_template=“Mising xxx”, … ), … ], … )
步骤 2:创建诊断引擎。 >>>引擎 = DiagnosticEngine()
步骤 3:启动新的诊断上下文。 >>> engine.create_diagnostic_context(“torch.onnx.export”, version=“1.0”) 作为上下文: … …
第 4 步:在代码中添加诊断。 …context.diagnose(rules.rule1, infra.Level.ERROR)
第 5 步: 之后,获取 SARIF 日志。 >>> sarif_log = engine.sarif_log()