Trackio documentation

الانتقال إلى Trackio

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

الانتقال إلى Trackio

من السهل الانتقال إلى Trackio من مكتبات تتبع التجارب الأخرى مع إجراء تعديلات برمجية قليلة. يوضح لك هذا الدليل كيفية الانتقال من أدوات تتبع التجارب الشائعة.

Weights & Biases ( wandb )

إن الانتقال من Weights & Biases إلى Trackio سهل للغاية لأن Trackio يستخدم نفس صياغة واجهة برمجة التطبيقات (API) تمامًا مثل wandb. في معظم الحالات، كل ما عليك فعله هو تغيير جملة الاستيراد!

الهجرة البسيطة

يتطلب الانتقال الأساسي والأبسط تغيير الاستيراد فقط:

- import wandb
+ import trackio as wandb

wandb.init(project="my-project")
wandb.log({"loss": 0.5, "accuracy": 0.8})
wandb.finish()

مثال كامل

إليك مثالًا أكثر اكتمالًا يُظهر كيف تبقى بقية الكود الخاص بك تمامًا كما هي!

- 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()

الميزات المتقدمة

يدعم Trackio تسجيل الجداول والصور والصوتيات والأجسام ثلاثية الأبعاد وما إلى ذلك - بنفس واجهة برمجة التطبيقات (API) الخاصة بـ 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 إجراء بعض التغييرات الإضافية نظرًا لأن Neptune له بنية واجهة برمجة تطبيقات مختلفة، لكن عملية الانتقال لا تزال مباشرة.

الترحيل الأساسي لتسجيل السجلات

- 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()

إكمال هجرة حلقة التدريب

- 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()

نقاط الانتقال الرئيسية

  1. التهيئة: استبدل neptune.init_run() بـ trackio.init()
  2. تسجيل السجلات: استخدم trackio.log() مع القواميس بدلاً من إسناد مقاييس فردية
  3. التنظيف: استبدل run.stop() بـ trackio.finish()

فوائد الانتقال

  • واجهة برمجة تطبيقات أبسط: تسجيل عبر قاموس مسطّح مقابل الوصول إلى السمات المتداخلة
  • التطوير المحلي: العمل دون اتصال بالإنترنت افتراضيًا
  • استضافة مجانية: انشر لوحات التحكم على Hugging Face Spaces دون أي تكلفة
  • واجهة مألوفة: إذا كنت قد استخدمت wandb من قبل على وجه الخصوص، فإن واجهة برمجة التطبيقات (API) لم تتغير
Update on GitHub