Spec-Zone.ru › PyTorch 2

torch.monitor

Предупреждение

Этот модуль — предварительная версия, и его интерфейсы и функциональность могут измениться без предупреждения в будущих выпусках PyTorch.

torch.monitor предоставляет интерфейс для ведения журналов событий и счётчиков из PyTorch.

Интерфейсы stat предназначены для отслеживания основных метрик, которые периодически записываются в журнал для мониторинга производительности системы. Поскольку статистики агрегируются со специфическим размером окна, вы можете записывать их в критические циклы с минимальным влиянием на производительность.

Для менее частых событий или значений, таких как потеря, точность, отслеживание использования, можно напрямую использовать интерфейс событий.

Обработчики событий могут быть зарегистрированы для обработки событий и передачи их во внешний приемник событий.

Справочник 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 ограничит количество образцов в окне, отбрасывая add вызовов после того, как произошло 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

Добавляет значение в stat для агрегирования в соответствии с настроенным типом stat и агрегациями.

property count

Количество точек данных, которые были в данный момент собраны. Сбрасывается после записи события в журнал.

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

Возвращает текущее значение stat, в основном для целей тестирования. Если stat был зарегистрирован и не было добавлено никаких дополнительных значений, это будет ноль.

property name

Имя stat, установленное во время создания.

class torch.monitor.data_value_t

data_value_t — это одно из str, float, int, bool.

class torch.monitor.Event

Event представляет собой конкретное типизированное событие для регистрации. Оно может представлять собой высокоуровневые точки данных, такие как потеря или точность за эпоху, или более низкоуровневые агрегации, такие как через предоставленные этой библиотекой Stat.

Все события одного типа должны иметь одинаковое имя, чтобы обработчики по потоку могли правильно их обработать.

__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 отменяет регистрацию 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.

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/monitor.html

Spec-Zone.ru

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