快捷方式

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

根据配置的统计类型和聚合方式,将值添加到统计量中进行聚合。

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 代表要记录的特定类型事件。这可以代表诸如每个 epoch 的损失或准确率等高级数据点,也可以代表诸如通过此库提供的统计信息等更低级的聚合。

所有相同类型的事件应具有相同的名称,以便下游处理程序可以正确处理它们。

__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]

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 的全面开发人员文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

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

查看资源