torch._logging#
创建于: 2023年4月24日 | 最后更新于: 2025年6月17日
PyTorch 拥有一个可配置的日志系统,不同的组件可以设置不同的日志级别。例如,一个组件的日志消息可以完全禁用,而另一个组件的日志消息可以设置为最高详细程度。
警告
此功能处于 Beta 阶段,未来可能存在不兼容的更改。
警告
此功能尚未扩展到控制 PyTorch 中所有组件的日志消息。
有两种方式可以配置日志系统:通过环境变量 TORCH_LOGS 或 Python API torch._logging.set_logs。
设置单个组件的日志级别并切换单个日志的工件类型。 |
环境变量 TORCH_LOGS 是一个逗号分隔的 [+-]<component> 对列表,其中 <component> 是下面指定的组件。 + 前缀将降低组件的日志级别,显示更多日志消息,而 - 前缀将提高组件的日志级别,显示更少的日志消息。默认设置是当 TORCH_LOGS 中未指定组件时的行为。除了组件,还有工件。工件是与组件关联的特定调试信息,要么显示要么不显示,因此使用 + 或 - 为工件添加前缀将不起作用。由于它们与组件相关联,启用该组件通常也会启用该工件,除非该工件被指定为 off_by_default。此选项在 _registrations.py 中指定,用于那些过于冗余以至于只应在明确启用时显示的工件。以下组件和工件可通过 TORCH_LOGS 环境变量进行配置(有关 Python API,请参阅 torch._logging.set_logs)
- 组件
all特殊组件,用于配置所有组件的默认日志级别。默认值:
logging.WARNdynamoTorchDynamo 组件的日志级别。默认值:
logging.WARNaotAOTAutograd 组件的日志级别。默认值:
logging.WARNinductorTorchInductor 组件的日志级别。默认值:
logging.WARNyour.custom.module任意未注册模块的日志级别。提供完全限定名即可启用该模块。默认值:
logging.WARN
- 工件
bytecode是否发出 TorchDynamo 的原始和生成的字节码。默认值:
Falseaot_graphs是否发出 AOTAutograd 生成的图形。默认值:
Falseaot_joint_graph是否发出 AOTAutograd 生成的前向-后向联合图形。默认值:
Falsecompiled_autograd是否发出 compiled_autograd 的日志。默认值:
Falseddp_graphs是否发出 DDPOptimizer 生成的图形。默认值:
Falsegraph是否以表格格式发出 TorchDynamo 捕获的图形。默认值:
Falsegraph_code是否发出 TorchDynamo 捕获的图形的 Python 源代码。默认值:
Falsegraph_breaks在 TorchDynamo 跟踪期间遇到唯一图形中断时是否发出消息。默认值:
Falseguards是否发出 TorchDynamo 为每个编译函数生成的守卫。默认值:
Falserecompiles每次 TorchDynamo 重新编译函数时是否发出守卫失败原因和消息。默认值:
Falseoutput_code是否发出 TorchInductor 的输出代码。默认值:
Falseschedule是否发出 TorchInductor 的调度。默认值:
False
- 示例
TORCH_LOGS="+dynamo,aot"将 TorchDynamo 的日志级别设置为logging.DEBUG,将 AOT 的日志级别设置为logging.INFOTORCH_LOGS="-dynamo,+inductor"将 TorchDynamo 的日志级别设置为logging.ERROR,将 TorchInductor 的日志级别设置为logging.DEBUGTORCH_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工件