Hub Python 庫文件
TensorBoard 日誌記錄器
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
TensorBoard 日誌記錄器
TensorBoard 是一個用於機器學習實驗的視覺化工具包。TensorBoard 允許跟蹤和視覺化指標,如損失和準確率,視覺化模型圖,檢視直方圖,顯示影像等等。TensorBoard 與 Hugging Face Hub 很好地整合。當 tfevents 等 TensorBoard 跟蹤檔案被推送到 Hub 時,Hub 會自動檢測到它們並啟動一個例項來視覺化它們。有關 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.com.tw/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)