Trackio documentation
الانتقال إلى Trackio
الانتقال إلى 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()نقاط الانتقال الرئيسية
- التهيئة: استبدل
neptune.init_run()بـtrackio.init() - تسجيل السجلات: استخدم
trackio.log()مع القواميس بدلاً من إسناد مقاييس فردية - التنظيف: استبدل
run.stop()بـtrackio.finish()
فوائد الانتقال
- واجهة برمجة تطبيقات أبسط: تسجيل عبر قاموس مسطّح مقابل الوصول إلى السمات المتداخلة
- التطوير المحلي: العمل دون اتصال بالإنترنت افتراضيًا
- استضافة مجانية: انشر لوحات التحكم على Hugging Face Spaces دون أي تكلفة
- واجهة مألوفة: إذا كنت قد استخدمت
wandbمن قبل على وجه الخصوص، فإن واجهة برمجة التطبيقات (API) لم تتغير