Spec-Zone.ru › PyTorch 1

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 представляет собой конкретное типизированное событие для регистрации. Это может представлять высокоуровневые точки данных, такие как потеря или точность за эпоху, или более низкоуровневые агрегации, такие как через Stats, предоставляемые этой библиотекой.

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

__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) [источник]

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) [источник]

Создаёт TensorboardEventHandler.

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

Spec-Zone.ru

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