• 文档 >
  • torch.monitor
快捷键

torch.monitor

警告

此模块为原型发布版本,其接口和功能可能在未来的 PyTorch 版本中未经通知而更改。

torch.monitor 提供了从 PyTorch 记录事件和计数的接口。

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

对于更不频繁的事件或值,如损失、准确度、使用跟踪,可以直接使用事件接口。

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

API 参考指南

类 torch.monitor.Aggregation

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

成员:

值:

值返回最后添加的值。

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 ,stat 将通过对窗口内添加的次数达到 max_samples 次后丢弃添加调用,来限制每个窗口的样本数量。如果没有设置,窗口内的所有 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

将一个值添加到要聚合的统计中,根据配置的统计类型和聚合方式。

属性计数 ¶

当前已收集的数据点数量。事件记录后重置。

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

返回当前统计值,主要用于测试目的。如果统计值已记录且未添加更多值,则此值为零。

属性名称 ¶

在创建过程中设置的统计名称。

类 torch.monitor.data_value_t ¶

data_value_t 是 strfloatintbool 之一。

class torch.monitor.Event

Event 表示要记录的特定类型事件。这可以表示诸如每个 epoch 的损失或准确率等高级数据点,也可以表示通过此库提供的 Stats 进行的更低级别的聚合。

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

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

构建了 Event

属性数据¶

包含在 Event 中的结构化数据。

属性名称¶

该名称的 Event

属性时间戳 ¶

发生 Event 的时间戳。

类 torch.monitor.EventHandlerHandle ¶

EventHandlerHandle 是由 register_event_handler 返回的包装类型,用于通过 unregister_event_handler 注销处理程序。该类型不能直接初始化。

torch.monitor.log_event(eventtorch._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 贡献者。

使用 Sphinx 构建,主题由 Read the Docs 提供。

文档

PyTorch 开发者文档全面访问

查看文档

教程

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

查看教程

资源

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

查看资源