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 允许跟踪和可视化损失和准确率等指标、可视化模型图、查看直方图、显示图像等等。TensorBoard 与 Hugging Face Hub 深度集成。当推送到 Hub 时,Hub 会自动检测 TensorBoard 跟踪文件(例如 tfevents),并启动一个实例来可视化它们。要了解有关 Hub 上 TensorBoard 集成的更多信息,请查看 此指南。

为了利用此集成,huggingface_hub 提供了一个自定义日志记录器,用于将日志推送到 Hub。它可以作为 SummaryWriter 的直接替代品,无需额外代码。跟踪数据仍会保存在本地,并由后台任务定期将其推送到 Hub。

HFSummaryWriter

class huggingface_hub.HFSummaryWriter

< >

( *args**kwargs )

参数

  • repo_id (str) — 日志将推送到的仓库的 id。
  • 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 的额外关键字参数。

一个封装了 tensorboard 的 SummaryWriter 的类,用于将训练日志推送到 Hub。

数据会先在本地记录,然后异步推送到 Hub。向 Hub 推送数据是在一个单独的线程中完成的,以避免阻塞训练脚本。特别是,如果上传因任何原因(例如连接问题)失败,主脚本也不会被中断。数据会自动每 commit_every 分钟(默认每 5 分钟)推送到 Hub 一次。

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