Визуализация архитектуры сети
Понимание архитектуры модели может быть очень полезным как для отладки вашей сети, так и для понимания её поведения.
В этом документе мы построим глобальную модель, используя данные о часовой нагрузке региона ERCOT. В качестве референса мы используем записную книжку ./global_modeling.ipynb
Наконец, мы визуализируем архитектуру сети.
Сначала мы установим Graphviz. Для Windows перейдите по ссылке https://www.graphviz.org/download/. Для Mac/Linux выполните команду ниже.
Сначала загружаем данные:
0
2004-01-01 01:00:00
7225.09
877.79
1044.89
745.79
7124.21
1660.45
3639.12
654.61
1
2004-01-01 02:00:00
6994.25
850.75
1032.04
721.34
6854.58
1603.52
3495.16
639.88
2
2004-01-01 03:00:00
6717.42
831.63
1021.10
699.70
6639.48
1527.99
3322.70
623.42
Извлекаем названия регионов, которые впоследствии будут использоваться при создании модели.
Глобальные модели могут быть активированы, когда входные данные df
функции содержат дополнительную колонку ID
, которая идентифицирует различные временные ряды (помимо типичной колонки ds
, содержащей временные метки, и колонки y
, содержащей наблюдаемые значения временного ряда). В нашем примере мы выбираем данные за трехлетний интервал (с 2004 по 2007 год).
0
2004-01-01 01:00:00
7225.09
COAST
1
2004-01-01 02:00:00
6994.25
COAST
2
2004-01-01 03:00:00
6717.42
COAST
Когда входными данными для функции split_df
является pd.DataFrame с колонкой ‘ID’, обучающие и валидационные данные предоставляются в аналогичном формате. Для глобальных моделей входные данные обычно разделяются в соответствии с долей времени, охватывающей все временные ряды (по умолчанию, когда есть более одного ‘ID’ и когда local_split=False
). Если пользователь хочет разделить каждый временной ряд локально, параметр local_split
должен быть установлен в значение True. В этом примере мы разделим наши данные на обучающую и тестовую выборки (с долей теста 33% - 2 года обучения и 1 год теста).
Глобальное моделирование позволяет нам тренировать нашу модель, основываясь либо на глобальной, либо на локальной нормализации. В последнем случае каждый временной ряд нормализуется локально (у каждого временного ряда есть свои соответствующие параметры данных). В первом случае у нас есть уникальные параметры данных, которые будут использоваться во всех рассматриваемых временных рядах.
Глобальное моделирование — локальная нормализация
Процесс стандартной подгонки глобальных моделей основан на локализованной нормализации данных. Каждый временной ряд будет иметь параметры нормализации данных, связанные с каждым предоставленным идентификатором ('ID'). Мы собираемся определить модель, которая прогнозирует следующий час на основе данных последних 24 часов.
После создания объекта NeuralProphet
, модель можно создать, вызвав функцию fit
1
0.025526
0.033126
0.000416
0.0
1
1. Сводная информация о сети
От https://pypi.org/project/torch-summary/ :
Torch-summary предоставляет информацию, дополняющую то, что предоставляет print(your_model)
в PyTorch, аналогично API model.summary()
в Tensorflow для визуализации модели, что помогает при отладке вашей сети. В этом проекте мы реализуем аналогичный функционал в PyTorch и создаем чистый, простой интерфейс для использования в ваших проектах.
2. Сетевая визуализация
От https://github.com/szagoruyko/pytorchviz :
Небольшой пакет для создания визуализаций графиков и трассировок выполнения PyTorch.
Last updated