Hub Python Library documentation

Логгер TensorBoard

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Логгер TensorBoard

TensorBoard — это набор инструментов для визуализации экспериментов в машинном обучении. TensorBoard позволяет отслеживать и визуализировать метрики, такие как loss и accuracy, визуализировать граф модели, просматривать гистограммы, отображать изображения и многое другое. TensorBoard хорошо интегрирован с Hugging Face Hub. Hub автоматически обнаруживает трассировки TensorBoard (например, tfevents) при их загрузке на Hub и запускает экземпляр для их визуализации. Чтобы получить дополнительную информацию об интеграции TensorBoard на Hub, ознакомьтесь с этим руководством.

Чтобы воспользоваться этой интеграцией, huggingface_hub предоставляет собственный логгер для отправки логов в Hub. Он работает как готовая замена для SummaryWriter без необходимости писать дополнительный код. Трассировки по-прежнему сохраняются локально, а фоновая задача отправляет их в Hub с регулярными интервалами.

HFSummaryWriter

класс huggingface_hub.HFSummaryWriter

< >

( *args**kwargs )

Параметры

  • repo_id (str) — Идентификатор репозитория, в который будут отправлены логи.
  • logdir (str, необязательный) — Каталог, в который будут записываться журналы. Если не указан, локальный каталог будет создан объектом SummaryWriter, лежащим в основе.
  • commit_every (int или float, необязательный) — Частота (в минутах), с которой журналы отправляются в Hub. По умолчанию — 5 минут.
  • squash_history (bool, необязательный) — Определяет, следует ли сжимать историю репозитория после каждого коммита. По умолчанию False. Сжатие коммитов полезно для предотвращения деградации производительности репозитория при его чрезмерном увеличении.
  • repo_type (str, необязательный) — Тип репозитория, в который будут отправлены логи. По умолчанию — “model”.
  • repo_revision (str, необязательный) — Ревизия репозитория, в который будут отправлены логи. По умолчанию — “main”.
  • repo_private (bool, необязательный) — Определяет, следует ли сделать репозиторий приватным. Если None (по умолчанию), репозиторий будет публичным, если только по умолчанию для организации не задан приватный режим. Это значение игнорируется, если репозиторий уже существует.
  • path_in_repo (str, необязательный) — Путь к папке в репозитории, куда будут отправлены логи. По умолчанию — “tensorboard/”.
  • repo_allow_patterns (list[str] или str, необязательный) — Список шаблонов, которые нужно включить в загрузку. По умолчанию "*.tfevents.*". Подробности — в руководстве по загрузке.
  • repo_ignore_patterns (list[str] или str, необязательный) — Список шаблонов для исключения при загрузке. Подробности — в руководстве по загрузке.
  • token (str, необязательный) — Токен аутентификации. По умолчанию используется сохранённый токен. Подробнее см. https://huggingface.co/settings/token
  • kwargs — Дополнительные именованные аргументы, передаваемые в SummaryWriter.

Обёртка над SummaryWriter из tensorboard для отправки журналов обучения в Hub.

Данные записываются локально, а затем асинхронно отправляются на Hub. Отправка данных на Hub выполняется в отдельном потоке, чтобы не блокировать скрипт обучения. В частности, если загрузка по какой-либо причине (например, из-за проблемы с подключением) завершится ошибкой, основной скрипт не будет прерван. Данные автоматически отправляются на Hub каждые commit_every минут (по умолчанию — каждые 5 минут).

HFSummaryWriter является экспериментальным. Его API может измениться в будущем без предварительного уведомления.

Примеры:

# Taken from https://pytorch.org/docs/stable/tensorboard.html
- from torch.utils.tensorboard import SummaryWriter
+ from huggingface_hub import HFSummaryWriter

import numpy as np

- writer = SummaryWriter()
+ writer = HFSummaryWriter(repo_id="username/my-trained-model")

for n_iter in range(100):
    writer.add_scalar('Loss/train', np.random.random(), n_iter)
    writer.add_scalar('Loss/test', np.random.random(), n_iter)
    writer.add_scalar('Accuracy/train', np.random.random(), n_iter)
    writer.add_scalar('Accuracy/test', np.random.random(), n_iter)
>>> from huggingface_hub import HFSummaryWriter

# Logs are automatically pushed every 15 minutes (5 by default) + when exiting the context manager
>>> with HFSummaryWriter(repo_id="test_hf_logger", commit_every=15) as logger:
...     logger.add_scalar("a", 1)
...     logger.add_scalar("b", 2)
Update on GitHub