إدارة نماذج Ultralytics 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
flag وعدد مرات التدريب (epoch) للوضوح.
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 مجموعة شاملة من العمليات للإدارة الفعالة للنماذج، مما يتيح لك التركيز على تحقيق أفضل النتائج في مساعيك في مجال تعلم الآلة. إذا كانت لديك أية أسئلة أخرى أو كنت بحاجة إلى مساعدة، فيرجى التواصل مع مجتمعنا أو فريق الدعم. نتمنى لك نمذجة سعيدة! 🚀