快捷方式

torch.monitor

警告

此模块为原型版本,其接口和功能可能会在未来的 PyTorch 版本中不经警告而更改。

torch.monitor 提供了一个用于记录 PyTorch 中事件和计数器的接口。

统计接口旨在用于跟踪定期记录的高级指标,以便用于监控系统性能。由于统计信息会聚合到特定窗口大小,因此可以从关键循环中记录到它们,而对性能的影响最小。

对于不那么频繁的事件或值(例如损失、准确性、使用情况跟踪),可以直接使用事件接口。

可以注册事件处理程序来处理事件并将它们传递给外部事件接收器。

API 参考

class torch.monitor.Aggregation

这些是可以用于累积统计信息的聚合类型。

成员

VALUE

VALUE 返回要添加的最后一个值。

MEAN

MEAN 计算所有添加值算术平均值。

COUNT

COUNT 返回添加值的总数。

SUM

SUM 返回添加值的总和。

MAX

MAX 返回添加值的最大值。

MIN

MIN 返回添加值的最小值。

属性 名称
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

创建期间设置的统计数据名称。

torch.monitor.data_value_t

data_value_t 是 strfloatintbool 之一。

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

属性 data

Event 中包含的结构化数据。

属性 name

Event 的名称。

属性 timestamp

Event 发生的时间戳。

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]

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]

构造 TensorboardEventHandler

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取适合初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源