Spec-Zone.ru › PyTorch 2.14

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API