Trackio documentation
Chuyển sang Trackio
Chuyển sang Trackio
Việc chuyển đổi sang Trackio từ các thư viện theo dõi thí nghiệm khác rất dễ dàng với ít thay đổi mã. Hướng dẫn này cho bạn cách chuyển đổi từ các công cụ theo dõi thí nghiệm phổ biến.
Weights & Biases ( wandb )
Việc chuyển từ Weights & Biases sang Trackio cực kỳ dễ dàng vì Trackio sử dụng cú pháp API hoàn toàn giống với wandb. Trong hầu hết các trường hợp, bạn chỉ cần thay đổi câu lệnh import!
Chuyển đổi đơn giản
Việc di chuyển cơ bản nhất chỉ yêu cầu thay đổi import của bạn:
- import wandb
+ import trackio as wandb
wandb.init(project="my-project")
wandb.log({"loss": 0.5, "accuracy": 0.8})
wandb.finish()Ví dụ hoàn chỉnh
Dưới đây là một ví dụ đầy đủ hơn cho thấy phần còn lại của mã của bạn vẫn giữ nguyên!
- import wandb
+ import trackio as wandb
import numpy as np
wandb.init(
project="image-classification",
name="experiment-1",
config={
"learning_rate": 0.01,
"batch_size": 32,
"epochs": 10
}
)
for epoch in range(10):
loss = np.random.random()
accuracy = np.random.random()
wandb.log({
"epoch": epoch,
"loss": loss,
"accuracy": accuracy,
"learning_rate": wandb.config.learning_rate
})
wandb.finish()Tính năng nâng cao
Trackio hỗ trợ ghi log Tables, Images, Audio, đối tượng 3D, v.v. - cùng API với wandb:
- import wandb
+ import trackio as wandb
import numpy as np
wandb.init(project="data-analysis")
image_array = np.random.randint(0, 255, (100, 100, 3), dtype=np.uint8)
wandb.log({
"sample_image": wandb.Image(image_array, caption="Generated sample"),
"model_diagram": wandb.Image("architecture.png")
})
columns = ["epoch", "train_loss", "val_loss", "accuracy"]
data = [
[1, 0.8, 0.6, 0.75],
[2, 0.6, 0.5, 0.82],
[3, 0.4, 0.45, 0.89]
]
table = wandb.Table(data=data, columns=columns)
wandb.log({"training_results": table})
wandb.finish()Neptune (neptune)
Việc chuyển đổi từ Neptune đòi hỏi một vài thay đổi hơn do Neptune có cấu trúc API khác, nhưng quá trình chuyển đổi vẫn đơn giản.
Chuyển đổi Ghi Nhật Ký Cơ Bản
- import neptune
+ import trackio
- run = neptune.init_run(
- project="my-workspace/my-project",
- api_token="your-token"
- )
+ trackio.init(project="my-project")
- run["parameters"] = {"learning_rate": 0.01, "batch_size": 32}
- run["metrics/loss"].log(0.5)
- run["metrics/accuracy"].log(0.8)
+ trackio.config.update({"learning_rate": 0.01, "batch_size": 32})
+ trackio.log({"loss": 0.5, "accuracy": 0.8})
- run.stop()
+ trackio.finish()Hoàn tất việc di chuyển vòng lặp huấn luyện
- import neptune
+ import trackio
import numpy as np
- run = neptune.init_run(
- project="my-workspace/classification-project",
- name="experiment-1",
- tags=["pytorch", "cnn"]
- )
+ trackio.init(
+ project="classification-project",
+ name="experiment-1",
+ tags=["pytorch", "cnn"]
+ )
config = {"learning_rate": 0.01, "epochs": 10, "batch_size": 32}
- run["parameters"] = config
+ trackio.config.update(config)
for epoch in range(config["epochs"]):
# Simulate training
train_loss = np.random.random()
val_accuracy = np.random.random()
# Neptune logging
- run["metrics/train/loss"].log(train_loss)
- run["metrics/val/accuracy"].log(val_accuracy)
- run["metrics/epoch"].log(epoch)
# Trackio logging
+ trackio.log({
+ "train/loss": train_loss,
+ "val/accuracy": val_accuracy,
+ "epoch": epoch
+ })
- run["model/weights"].upload("model.pth")
+ trackio.save("model.pth")
- run.stop()
+ trackio.finish()Các điểm chính trong quá trình di chuyển
- Khởi tạo: Thay
neptune.init_run()bằngtrackio.init() - Ghi nhật ký: Sử dụng
trackio.log()với các từ điển thay vì gán từng chỉ số riêng lẻ - Dọn dẹp: Thay
run.stop()bằngtrackio.finish()
Lợi ích khi di chuyển
- API đơn giản hơn: Ghi log bằng từ điển phẳng thay vì truy cập thuộc tính lồng nhau
- Phát triển cục bộ: Làm việc ngoại tuyến theo mặc định
- Chỗ lưu trữ miễn phí: Triển khai bảng điều khiển trên Hugging Face Spaces mà không tốn chi phí
- Giao diện quen thuộc: Nếu bạn đã từng sử dụng
wandbtrước đây, đặc biệt là, API không thay đổi