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