Hub Python Library documentation

Логгер TensorBoard

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v2.4.0).
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