torch.monitor
Создано: 12 янв. 2022 г. | Последнее обновление: 11 июн. 2025 г.
Предупреждение
Этот модуль является прототипом, и его интерфейсы и функциональность могут измениться без предупреждения в будущих выпусках 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 регистрирует статистику как Event по истечении каждого интервала длительностью
window_size. При закрытии окна статистика регистрируется через обработчики событий как событиеtorch.monitor.Stat.window_sizeследует задавать достаточно большим, чтобы избежать регистрации огромного количества событий. Например, 60 с. Stat использует точность до миллисекунд.Если задано
max_samples, статистика ограничивает число выборок в окне, отбрасывая вызовыaddпосле того, как будет выполненоmax_samplesдобавлений. Если параметр не задан, учитываются все вызовыaddв течение окна. Это необязательное поле позволяет сделать агрегированные значения более сопоставимыми между окнами, когда количество выборок может различаться.При уничтожении Stat будут зарегистрированы все оставшиеся данные, даже если окно еще не истекло.
-
__init__(self: torch._C._monitor.Stat, name: str, aggregations: collections.abc.Sequence[torch._C._monitor.Aggregation], window_size: datetime.timedelta, max_samples: SupportsInt | SupportsIndex = 9223372036854775807) → None -
Создает
Stat.
-
add(self: torch._C._monitor.Stat, v: SupportsFloat | SupportsIndex) → 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 — это один из типов
str,float,int,bool.
-
class torch.monitor.Event -
Event представляет собой типизированное событие, предназначенное для регистрации. Оно может представлять точки данных высокого уровня, например потери или точность для каждой эпохи, либо агрегированные данные более низкого уровня, например статистику, предоставляемую этой библиотекой.
Все события одного типа должны иметь одинаковое имя, чтобы последующие обработчики могли правильно их обрабатывать.
-
__init__(self: torch._C._monitor.Event, name: str, timestamp: datetime.datetime, data: collections.abc.Mapping[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: collections.abc.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 отменяет регистрацию
EventHandlerHandle, возвращенного после вызоваregister_event_handler. После выполнения этого вызова обработчик событий больше не будет получать события.
-
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.
-
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/monitor.html