Hub Python Library documentation
Логгер TensorBoard
Логгер TensorBoard
TensorBoard — это набор инструментов для визуализации экспериментов в машинном обучении. TensorBoard позволяет отслеживать и визуализировать метрики, такие как loss и accuracy, визуализировать граф модели, просматривать гистограммы, отображать изображения и многое другое. TensorBoard хорошо интегрирован с Hugging Face Hub. Hub автоматически обнаруживает трассировки TensorBoard (например, tfevents) при их загрузке на Hub и запускает экземпляр для их визуализации. Чтобы получить дополнительную информацию об интеграции TensorBoard на Hub, ознакомьтесь с этим руководством.
Чтобы воспользоваться этой интеграцией, huggingface_hub предоставляет собственный логгер для отправки логов в Hub. Он работает как
готовая замена для SummaryWriter без необходимости писать дополнительный код. Трассировки по-прежнему сохраняются локально, а фоновая задача отправляет их в Hub с регулярными интервалами.
HFSummaryWriter
класс huggingface_hub.HFSummaryWriter
< source >( *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)