评价此页

torch._logging#

创建于: 2023年4月24日 | 最后更新于: 2025年6月17日

PyTorch 拥有一个可配置的日志记录系统,可以为不同的组件设置不同的日志级别。例如,一个组件的日志消息可以被完全禁用,而另一个组件的日志消息可以设置为最高详细程度。

警告

此功能处于测试阶段,未来可能会发生不兼容的更改。

警告

此功能尚未扩展到控制 PyTorch 中所有组件的日志消息。

有两种方法可以配置日志记录系统:通过环境变量 TORCH_LOGS 或 Python API torch._logging.set_logs。

set_logs

设置单个组件的日志级别并切换单个日志伪像类型。

环境变量 TORCH_LOGS 是由 [+-]<component> 对组成的逗号分隔列表,其中 <component> 是下面指定的组件。 + 前缀将降低组件的日志级别,显示更多日志消息,而 - 前缀将提高组件的日志级别并显示更少的日志消息。默认设置是当 TORCH_LOGS 中未指定组件时的行为。除了组件之外,还有伪像。伪像是指与组件关联的特定调试信息片段,这些片段会被显示或不显示,因此在伪像前添加 +- 前缀将不起作用。由于它们与组件相关联,因此启用该组件通常也会启用该伪像,除非该伪像被指定为 off_by_default。此选项在 _registrations.py 中指定,用于那些非常冗长以至于只应在明确启用时才显示的伪像。以下组件和伪像可以通过 TORCH_LOGS 环境变量进行配置(有关 Python API,请参阅 torch._logging.set_logs)。

组件
all

特殊的组件,用于配置所有组件的默认日志级别。默认值:logging.WARN

dynamo

TorchDynamo 组件的日志级别。默认值:logging.WARN

aot

AOTAutograd 组件的日志级别。默认值:logging.WARN

inductor

TorchInductor 组件的日志级别。默认值:logging.WARN

your.custom.module

任意未注册模块的日志级别。提供完全限定名称后,将启用该模块。默认值:logging.WARN

伪像
bytecode

是否发出 TorchDynamo 的原始字节码和生成的字节码。默认值:False

aot_graphs

是否发出 AOTAutograd 生成的图。默认值:False

aot_joint_graph

是否发出 AOTAutograd 生成的联合前向-后向图。默认值:False

compiled_autograd

是否发出 compiled_autograd 的日志。默认值:False

ddp_graphs

是否发出 DDPOptimizer 生成的图。默认值:False

graph

是否以表格格式发出 TorchDynamo 捕获的图。默认值:False

graph_code

是否发出 TorchDynamo 捕获的图的 Python 源代码。默认值:False

graph_breaks

在 TorchDynamo 跟踪期间遇到唯一图中断时是否发出消息。默认值:False

guards

是否为每个编译后的函数发出 TorchDynamo 生成的 guard。默认值:False

recompiles

每次 TorchDynamo 重新编译函数时,是否发出 guard 失败原因和消息。默认值:False

output_code

是否发出 TorchInductor 的输出代码。默认值:False

schedule

是否发出 TorchInductor 的计划。默认值:False

示例

TORCH_LOGS="+dynamo,aot" 将 TorchDynamo 的日志级别设置为 logging.DEBUG,将 AOT 的日志级别设置为 logging.INFO

TORCH_LOGS="-dynamo,+inductor" 将 TorchDynamo 的日志级别设置为 logging.ERROR,将 TorchInductor 的日志级别设置为 logging.DEBUG

TORCH_LOGS="aot_graphs" 将启用 aot_graphs 伪像。

TORCH_LOGS="+dynamo,schedule" 将 TorchDynamo 的日志级别设置为 logging.DEBUG,并启用 schedule 伪像。

TORCH_LOGS="+some.random.module,schedule" 将 some.random.module 的日志级别设置为 logging.DEBUG,并启用 schedule 伪像。