torch._logging¶
PyTorch 有一個可設定的日誌記錄系統,其中不同的組件可以設定不同的日誌級別。例如,可以完全停用一個組件的日誌訊息,而將另一個組件的日誌訊息設定為最大詳細資訊。
警告
此功能目前為 Beta 版,未來可能會發生不相容的變更。
警告
此功能尚未擴充到控制 PyTorch 中所有組件的日誌訊息。
有兩種方法可以設定日誌記錄系統:透過環境變數 TORCH_LOGS 或 Python API torch._logging.set_logs。
| 設定個別組件的日誌級別並切換個別日誌成品類型。 | 
環境變數 TORCH_LOGS 是以逗號分隔的 [+-]<組件> 對清單,其中 <組件> 是下方指定的組件。+ 前綴會降低組件的日誌級別,顯示更多日誌訊息,而 - 前綴會提高組件的日誌級別並顯示較少的日誌訊息。預設設定是在 TORCH_LOGS 中未指定組件時的行為。除了組件之外,還有成品。成品是與組件相關聯的特定偵錯資訊片段,可以顯示或不顯示,因此在成品前面加上 + 或 - 將無效。由於它們與組件相關聯,因此啟用該組件通常也會啟用該成品,除非該成品被指定為 off_by_default。此選項在 _registrations.py 中指定,適用於非常頻繁的成品,只有在明確啟用時才會顯示。以下組件和成品可透過 TORCH_LOGS 環境變數進行設定(請參閱 torch._logging.set_logs 以瞭解 Python API)
- 組件
- 全部
- 設定所有組件預設日誌級別的特殊組件。預設值: - 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成品