捷徑

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 應設定為相對較高的值,以避免記錄大量的事件。例如:60 秒。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

新增一個值到 stat,以便根據配置的 stat 類型和聚合進行聚合。

property count

目前已收集的資料點數量。 一旦事件被記錄,就會重置。

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

傳回 stat 的目前值,主要用於測試目的。如果 stat 已記錄且未新增其他值,則此值將為零。

property name

在建立期間設定的 stat 名稱。

class torch.monitor.data_value_t

data_value_t 是 strfloatintbool 之一。

class torch.monitor.Event

Event 代表要記錄的特定類型事件。這可以代表高階資料點,例如每個 epoch 的損失或準確度,或更低階的聚合,例如透過此程式庫提供的 Stats。

相同類型的所有 Event 都應具有相同的名稱,以便下游處理常式可以正確處理它們。

__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 的完整開發者文件

檢視文件

教學課程

取得初學者和進階開發者的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得您的問題解答

檢視資源