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