Hub Python Library documentation

Trình ghi log TensorBoard

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Trình ghi log TensorBoard

TensorBoard là bộ công cụ trực quan hóa cho các thí nghiệm học máy. TensorBoard cho phép theo dõi và trực quan hóa các chỉ số như loss và accuracy, trực quan hóa đồ thị mô hình, xem histogram, hiển thị hình ảnh và nhiều hơn nữa. TensorBoard được tích hợp chặt chẽ với Hugging Face Hub. Hub tự động phát hiện các trace của TensorBoard (chẳng hạn như tfevents) khi được đẩy lên Hub, từ đó khởi động một instance để trực quan hóa chúng. Để biết thêm thông tin về tích hợp TensorBoard trên Hub, hãy xem hướng dẫn này.

Để tận dụng tích hợp này, huggingface_hub cung cấp một logger tùy chỉnh để đẩy log lên Hub. Nó hoạt động như một bản thay thế trực tiếp cho SummaryWriter mà không cần thêm mã nào. Các trace vẫn được lưu cục bộ và một tác vụ nền sẽ đẩy chúng lên Hub theo các khoảng thời gian đều đặn.

HFSummaryWriter

lớp huggingface_hub.HFSummaryWriter

< >

( *args**kwargs )

Tham số

  • repo_id (str) — ID của kho mà các log sẽ được đẩy lên.
  • logdir (str, tùy chọn) — Thư mục nơi các nhật ký sẽ được ghi. Nếu không được chỉ định, một thư mục cục bộ sẽ được tạo bởi đối tượng SummaryWriter bên dưới.
  • commit_every (int hoặc float, tùy chọn) — Tần suất (tính bằng phút) để các nhật ký được đẩy lên Hub. Mặc định là 5 phút.
  • squash_history (bool, tùy chọn) — Có nên nén lịch sử của kho sau mỗi lần commit hay không. Mặc định là False. Việc nén các commit có ích để tránh hiệu năng giảm khi kho trở nên quá lớn.
  • repo_type (str, tùy chọn) — Loại repo mà các log sẽ được đẩy lên. Mặc định là “model”.
  • repo_revision (str, tùy chọn) — Phiên bản của kho mà các nhật ký sẽ được đẩy lên. Mặc định là “main”.
  • repo_private (bool, tùy chọn) — Có nên đặt kho thành riêng tư hay không. Nếu là None (mặc định), kho sẽ là công khai trừ khi mặc định của tổ chức là riêng tư. Giá trị này bị bỏ qua nếu kho đã tồn tại.
  • path_in_repo (str, tùy chọn) — Đường dẫn đến thư mục trong repo mà các log sẽ được đẩy lên. Mặc định là “tensorboard/”.
  • repo_allow_patterns (list[str] hoặc str, tùy chọn) — Một danh sách các mẫu cần bao gồm trong quá trình tải lên. Mặc định là "*.tfevents.*". Xem hướng dẫn tải lên để biết thêm chi tiết.
  • repo_ignore_patterns (list[str] hoặc str, tùy chọn) — Một danh sách các mẫu để loại trừ trong quá trình tải lên. Xem hướng dẫn tải lên để biết thêm chi tiết.
  • token (str, tùy chọn) — Token xác thực. Mặc định sẽ dùng token đã lưu. Xem https://huggingface.co/settings/token để biết thêm chi tiết
  • kwargs — Các đối số từ khóa bổ sung được truyền đến SummaryWriter.

Bọc quanh SummaryWriter của tensorboard để đẩy nhật ký huấn luyện lên Hub.

Dữ liệu được ghi lại cục bộ sau đó được đẩy lên Hub một cách bất đồng bộ. Việc đẩy dữ liệu lên Hub được thực hiện trong một luồng riêng để tránh chặn script huấn luyện. Cụ thể, nếu quá trình tải lên thất bại vì bất kỳ lý do nào (ví dụ: sự cố kết nối), script chính sẽ không bị gián đoạn. Dữ liệu được tự động đẩy lên Hub mỗi commit_every phút (mặc định là mỗi 5 phút).

HFSummaryWriter là thử nghiệm. API của nó có thể thay đổi trong tương lai mà không cần thông báo trước.

Ví dụ:

# 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