torch._logging¶
PyTorch 具有可配置的日志记录系统,其中不同的组件可以被赋予不同的日志级别设置。例如,一个组件的日志消息可以完全禁用,而另一个组件的日志消息可以设置为最大详细程度。
警告
此功能处于测试阶段,将来可能会出现兼容性中断更改。
警告
此功能尚未扩展到控制 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.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 生成的每个编译函数发出保护。默认值:
False
recompiles
每次 TorchDynamo 重新编译函数时,是否发出保护失败原因和消息。默认值:
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
工件