捷徑

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,則統計資訊會透過在發生 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_t 是 strfloatintbool 其中之一。

class torch.monitor.Event

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)[原始碼]

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)[原始碼]

建構 TensorboardEventHandler

文件

存取 PyTorch 的完整開發人員文件

檢視文件

教學課程

取得適用於初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並取得問題解答

檢視資源