Автор: Александр Гончаренко

Редактура: Герман Петров

Введение

Когда мы не хотим применять слишком сложные инструменты для логирования метрик и артефактов, мы можем обращаться к одному из очевидных вариантов — Tensorboard.

TensorBoard — инструмент для визуализации и мониторинга машинного обучения, разработанный Google в рамках проекта TensorFlow.

Среди его преимуществ в сравнении с аналогами (W&B, ClearML) выделяются:

  1. Простота настройки. Добавить логирование метрик можно за пару строчек кода, а для запуска сервера не нужно ничего настраивать.
  2. Поддержка многих форматов данных. К ним относятся скаляры, распределения, графы, картинки, аудио, видео, графики и многое другое.
  3. Бесплатное self-hosted решение. С ним вы будете уверены, что у вас всегда есть доступ к результатам ваших экспериментов.

В то же время у Tensorboard ****есть недостатки, которые, в первую очередь, влияют на возможность масштабирования:

  1. Медленная работа. Если количество запусков перевалит за сотню — Tensorboard начнёт подтормаживать.
  2. Отсутствие сложной группировки данных. Если у вас несколько разных экспериментов — будет крайне неудобно использовать Tensorboard.

В этой статье мы узнаем, как применять Tensorboard ****для логирования данных в Pytorch. Давайте разбираться со всем по порядку 🙂

Первичная настройка

Единой точкой входа является объект SummaryWriter, который и даёт нам возможность логировать. Его желательно закрывать в самом конце.

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
#Some code
writer.close()

У SummaryWriter также есть несколько важных аргументов:

Название параметра Описание Значение по умолчанию
log_dir Папка с логами Папка в директории runs, название которой содержит дату. Например, runs/Aug02_19-01-07
max_queue Максимальный размер очереди логируемых событий, при превышении которого принудительно произойдет запись на диск 10
flush_secs Частота записи логов на диск 120

Для просмотра того, что было залогировано, нам нужно запустить сам Tensorboard: tensorboard --logdir directory_name.

Дополнительные параметры представлены в таблице: