pytorch
1from torch._C._monitor import * # noqa: F4032
3from typing import TYPE_CHECKING4
5if TYPE_CHECKING:6from torch.utils.tensorboard import SummaryWriter7
8
9STAT_EVENT = "torch.monitor.Stat"10
11
12class TensorboardEventHandler:13"""14TensorboardEventHandler is an event handler that will write known events to
15the provided SummaryWriter.
16
17This currently only supports ``torch.monitor.Stat`` events which are logged
18as scalars.
19
20Example:
21>>> # xdoctest: +REQUIRES(env:TORCH_DOCTEST_MONITOR)
22>>> # xdoctest: +REQUIRES(module:tensorboard)
23>>> from torch.utils.tensorboard import SummaryWriter
24>>> from torch.monitor import TensorboardEventHandler, register_event_handler
25>>> writer = SummaryWriter("log_dir")
26>>> register_event_handler(TensorboardEventHandler(writer))
27"""
28def __init__(self, writer: "SummaryWriter") -> None:29"""30Constructs the ``TensorboardEventHandler``.
31"""
32self._writer = writer33
34def __call__(self, event: Event) -> None:35if event.name == STAT_EVENT:36for k, v in event.data.items():37self._writer.add_scalar(k, v, walltime=event.timestamp.timestamp())38