torch._logging¶
PyTorch 有一個可配置的日誌系統,可以為不同的元件設定不同的日誌級別。例如,可以完全停用某個元件的日誌訊息,而將另一個元件的日誌訊息設定為最高詳細級別。
警告
此功能處於 Beta 階段,將來可能存在破壞相容性的更改。
警告
此功能尚未擴充套件到控制 PyTorch 中所有元件的日誌訊息。
有兩種方式配置日誌系統:透過環境變數 TORCH_LOGS 或 Python API torch._logging.set_logs。
設定單個元件的日誌級別並切換單個日誌產物型別。 |
環境變數 TORCH_LOGS 是一個逗號分隔的 [+-]<元件> 對列表,其中 <元件> 是下面指定的元件。 + 字首將降低元件的日誌級別,顯示更多日誌訊息;而 - 字首將提高元件的日誌級別,顯示更少日誌訊息。未在 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 生成的原始和生成後的 bytecode。預設值:
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 為每個編譯函式生成的 guards。預設值:
Falserecompiles每當 TorchDynamo 重新編譯函式時,是否輸出 guard 失敗的原因和訊息。預設值:
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日誌產物