Hub Python Library documentation
TensorBoard 日志记录器
快速入门
操作指南
概念指南
参考
TensorBoard 日志记录器
TensorBoard 是一个用于机器学习实验的可视化工具包。TensorBoard 允许跟踪和可视化损失和准确率等指标、可视化模型图、查看直方图、显示图像等等。TensorBoard 与 Hugging Face Hub 深度集成。当推送到 Hub 时,Hub 会自动检测 TensorBoard 跟踪文件(例如 tfevents),并启动一个实例来可视化它们。要了解有关 Hub 上 TensorBoard 集成的更多信息,请查看 此指南。
为了利用此集成,huggingface_hub 提供了一个自定义日志记录器,用于将日志推送到 Hub。它可以作为 SummaryWriter 的直接替代品,无需额外代码。跟踪数据仍会保存在本地,并由后台任务定期将其推送到 Hub。
HFSummaryWriter
class huggingface_hub.HFSummaryWriter
< source >( *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)