評價此頁

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 偽像。