إدارة النماذج Ultralytics HUB-SDK HUB-SDK
مرحبًا بك في وثائق إدارة نماذج Ultralytics HUB-SDK! سواء كنت قد بدأت للتو في إدارة نماذج التعلم الآلي أو كنت عالم بيانات متمرسًا تبحث عن تعليمات تشغيل محددة، فقد وصلت إلى المكان الصحيح. يوفر لك هذا الدليل رحلة سلسة عبر ميزات HUB-SDK، مما يضمن لك اكتساب المعرفة اللازمة لإدارة نماذجك بكفاءة.
استرجاع نموذج بواسطة معرّفه الفريد
في مهام سير عمل التعلم الآلي، يعد الوصول إلى نموذج معين مطلبًا شائعًا. وباستخدام Ultralytics HUB-SDK، يكون جلب نموذج من خلال معرّفه أمرًا بسيطًا ومباشرًا. تقوم هذه الوظيفة بإعداد كائن نموذج بناءً على المعرف الفريد المقدم، مما يتيح لك الوصول الكامل إلى تفاصيل النموذج وعملياته.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
model = client.model("<Model ID>")
print(model.data) # Outputs the model's metadata and configuration
المتطلبات الأساسية لمشروع الوصول ومجموعة البيانات
قبل إنشاء النموذج أو التدريب عليه، من الضروري التأكد من أن كلاً من المشروع و مجموعة البيانات موجودة. يساعد مقتطف الشيفرة التالي في التحقق من هذه المكونات من خلال تهيئة كائناتها. في حين أن استخدام مشروع ومجموعة بيانات لتنظيم تدريب النموذج أمر مفيد، إلا أنه ليس إلزاميًا. إذا كان أي من المعرفين مفقودًا، فإن بيانات الكائن (project.data
, dataset.data
) ستكون فارغة.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")
إنشاء نموذج جديد بتكوين مخصص
إنشاء الطراز الجديد المصممة خصيصًا لمتطلبات مشروعك بسيطة مع هذه الوظيفة. حدد اسم النموذج واربطه بمشروعك ومجموعة البيانات الخاصة بك. يمكنك أيضًا تخصيص التكوينات، مثل تحديد حجم الدفعة أو الجهاز. لاحظ أن projectId
و datasetId
المعلمات اختيارية إذا لم تكن مستعدًا لربط النموذج بمشروع أو مجموعة بيانات بعد.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
data = {
"meta": {"name": "sdk model"}, # Model name
"projectId": project.id, # Optional: Associate with an existing project
"datasetId": dataset.id, # Optional: Associate with an existing dataset
"config": { # Define hyperparameters and settings
"batchSize": "-1",
"cache": "ram",
"device": "name",
"epochs": "5",
"imageSize": "640",
"patience": "5", # Stop training if validation doesn't improve
},
}
model = client.model()
model.create_model(data) # Creates the model with your specified details
تحديث البيانات الوصفية أو التهيئة للنموذج الحالي
مع تطور المشاريع، قد تحتاج إلى تحديث البيانات الوصفية للنموذج، مثل إعادة تسميته لتوضيحه. توفر SDK طريقة لتحديث هذه التفاصيل دون عناء، مما يقلل من الأخطاء اليدوية ويوفر الوقت.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
model = client.model("<Model ID>")
model.update({"meta": {"name": "Updated Model Name"}}) # Renames the specified model
حذف نموذج بأمان
حذف نموذج لا رجعة فيه، لذا استخدم هذه الوظيفة بحذر. عندما تكون متأكدًا من رغبتك في إزالة نموذج من النظام، سيحذف الأمر التالي النموذج المحدد نهائيًا مع جميع البيانات المرتبطة به.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
model = client.model("<Model ID>")
model.delete(hard=True) # Permanently deletes the specified model
بشكل افتراضي، فإن delete
حذفًا ناعمًا، حيث تضع علامة على النموذج على أنه غير نشط دون إزالته نهائيًا. إذا كنت تريد إجراء حذف نهائي وإزالة النموذج مع البيانات المرتبطة به بشكل دائم، مرر الوسيطة hard=True
كما هو موضح أعلاه. توخَّ الحذر عند استخدام خيار الحذف الصلب، لأنه لا رجعة فيه.
إدراج جميع نماذجك مع ترقيم الصفحات
تعمل Ultralytics HUB-SDK على تبسيط عملية الجلب قوائم النماذجوتنفيذ ترقيم الصفحات للتنقل بكفاءة عبر المجموعات التي يحتمل أن تكون كبيرة. من خلال تخصيص وسيطات مثل page_size
، يمكنك تخصيص المخرجات حسب احتياجاتك، بما في ذلك القدرة على عرض كل من المشاريع الخاصة والعامة.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
model_list = client.model_list(page_size=10) # Fetches the first page with 10 models
print("Current result:", model_list.results) # Displays the current page's models
model_list.next() # Move to the next page
print("Next page result:", model_list.results)
model_list.previous() # Return to the previous page
print("Previous page result:", model_list.results)
تحميل وتصور مقاييس التدريب
لتتبع مقاييس أداء نموذجك وتصورها طوال عملية التدريب، استخدم هذه الوظيفة لتحميل مقاييس مثل الخسارة والدقة. يتيح ذلك المراقبة المستمرة لتقدم التدريب ويبسط مرحلة التحليل.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
model = client.model("<Model ID>")
# Define your metrics structure. Keys are steps, and values are JSON strings of metrics.
data = {
1: '{"loss/1": 0.5, "accuracy/1": 0.85}',
2: '{"loss/2": 0.4, "accuracy/2": 0.88}',
3: '{"loss/3": 0.3, "accuracy/3": 0.90}',
}
model.upload_metrics(data) # Uploads the specified metrics to the model
تصدير النموذج الخاص بك للنشر أو التحليل
يعد تصدير النماذج لأغراض مختلفة، مثل النشر أو التحليل المتعمق، أمرًا بسيطًا ومباشرًا. حدد التنسيق الذي تريده، وستقوم هذه الوظيفة بإعداد النموذج وفقًا لذلك. سواءً كنت بحاجة إلى تنسيق TensorFlow أو PyTorch فإن SDK تتعامل معه بسلاسة.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
model = client.model("<Model ID>")
model.export(format="pyTorch") # Exports the model as a PyTorch file
استرداد عنوان URL للوزن المباشر
في بعض الأحيان، قد تحتاج أحيانًا إلى الوصول المباشر إلى القطع الأثرية المخزنة عن بُعد لنموذجك. توفر هذه الوظيفة عنوان URL للوصول إلى ملفات محددة، مثل أوزان النموذج الأفضل أداءً لديك.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
model = client.model("<Model ID>")
weight_url = model.get_weights_url("best") # or "last"
print("Weight URL link:", weight_url)
تحميل نقطة تدقيق نموذج
تحميل ملف نقطة تفتيش نموذجية واضحة ومباشرة مع upload_model
الوظيفة. قم بالإشارة إلى أهمية نقطة التفتيش باستخدام علامة is_best
العلم وحقبة التدريب من أجل الوضوح.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
model = client.model("<Model ID>")
model.upload_model(is_best=True, epoch=5, weights="<Weight File>") # Uploads the specified model checkpoint
الخاتمة
يوفر Ultralytics HUB-SDK مجموعة شاملة من العمليات لإدارة النماذج بفعالية، مما يتيح لك التركيز على تحقيق أفضل النتائج في مساعي التعلم الآلي الخاصة بك. إذا كان لديك أي أسئلة أخرى أو كنت بحاجة إلى مساعدة، يُرجى التواصل مع مجتمعنا أو فريق الدعم لدينا. نمذجة سعيدة! 🚀