快捷方式

torch.monitor

警告

此模組為原型版本,其介面和功能可能在未來的 PyTorch 版本中發生變化,恕不另行通知。

torch.monitor 提供了一個用於記錄 PyTorch 中的事件和計數器的介面。

統計介面旨在用於跟蹤高層指標,這些指標會定期記錄下來,用於監控系統性能。由於統計資訊會按特定的視窗大小進行聚合,您可以在關鍵迴圈中記錄它們,且對效能影響最小。

對於不太頻繁的事件或值,例如損失、準確率、使用情況跟蹤,可以直接使用事件介面。

可以註冊事件處理程式來處理事件並將其傳遞到外部事件接收器。

API 參考

class torch.monitor.Aggregation

這些是可用於累積統計資訊的聚合型別。

成員

VALUE

VALUE 返回最後新增的值。

MEAN

MEAN 計算所有新增值的算術平均值。

COUNT

COUNT 返回新增值的總數。

SUM

SUM 返回新增值的總和。

MAX

MAX 返回新增值的最大值。

MIN

MIN 返回新增值的最小值。

property name
class torch.monitor.Stat

Stat 用於在固定間隔內以高效能方式計算彙總統計資訊。Stat 每隔 window_size 時長將統計資訊作為事件記錄一次。當視窗關閉時,統計資訊透過事件處理程式記錄為 torch.monitor.Stat 事件。

window_size 應設定得相對較高,以避免記錄大量事件。例如:60s。Stat 使用毫秒精度。

如果設定了 max_samples,Stat 將透過在發生 max_samples 次新增後丟棄 add 呼叫來限制每個視窗的樣本數量。如果未設定,則視窗期間的所有 add 呼叫都將包含在內。這是一個可選欄位,用於在樣本數量可能變化時使聚合結果在不同視窗之間更具可比性。

當 Stat 被銷燬時,它將記錄所有剩餘資料,即使視窗尚未結束。

__init__(self: torch._C._monitor.Stat, name: str, aggregations: list[torch._C._monitor.Aggregation], window_size: datetime.timedelta, max_samples: int = 9223372036854775807) None

構造 Stat 例項。

add(self: torch._C._monitor.Stat, v: float) None

根據配置的統計型別和聚合方式向統計資訊新增一個值。

property count

當前已收集的資料點數量。事件記錄後重置。

get(self: torch._C._monitor.Stat) dict[torch._C._monitor.Aggregation, float]

返回統計資訊的當前值,主要用於測試目的。如果統計資訊已記錄且未新增更多值,則此值為零。

property name

建立時設定的統計資訊名稱。

class torch.monitor.data_value_t

data_value_tstr, float, int, bool 中的一種。

class torch.monitor.Event

Event 表示要記錄的特定型別事件。這可以代表高層資料點,例如每 epoch 的損失或準確率,或透過此庫提供的 Stat 進行的低層聚合。

所有同類型事件應具有相同的名稱,以便下游處理程式能夠正確處理它們。

__init__(self: torch._C._monitor.Event, name: str, timestamp: datetime.datetime, data: dict[str, data_value_t]) None

構造 Event 例項。

property data

Event 中包含的結構化資料。

property name

Event 的名稱。

property timestamp

Event 發生時的時間戳。

class torch.monitor.EventHandlerHandle

EventHandlerHandle 是 register_event_handler 返回的包裝型別,用於透過 unregister_event_handler 登出處理程式。此型別不能直接初始化。

torch.monitor.log_event(event: torch._C._monitor.Event) None

log_event 將指定事件記錄到所有已註冊的事件處理程式。由事件處理程式決定將事件記錄到相應的事件接收器。

如果沒有註冊事件處理程式,此方法將不做任何操作。

torch.monitor.register_event_handler(callback: Callable[[torch._C._monitor.Event], None]) torch._C._monitor.EventHandlerHandle

register_event_handler 註冊一個回撥函式,以便在透過 log_event 記錄事件時呼叫。這些處理程式應避免阻塞主執行緒,因為這可能在 log_event 呼叫期間執行並干擾訓練。

torch.monitor.unregister_event_handler(handler: torch._C._monitor.EventHandlerHandle) None

unregister_event_handler 登出呼叫 register_event_handler 後返回的 EventHandlerHandle。此方法返回後,事件處理程式將不再接收事件。

class torch.monitor.TensorboardEventHandler(writer)[source][source]

TensorboardEventHandler 是一個事件處理程式,它將已知事件寫入提供的 SummaryWriter。

目前僅支援 torch.monitor.Stat 事件,這些事件以標量形式記錄。

示例

>>> from torch.utils.tensorboard import SummaryWriter
>>> from torch.monitor import TensorboardEventHandler, register_event_handler
>>> writer = SummaryWriter("log_dir")
>>> register_event_handler(TensorboardEventHandler(writer))
__init__(writer)[source][source]

構造 TensorboardEventHandler 例項。

文件

訪問 PyTorch 全面的開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源