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"}, # Give your model a recognizable name
"projectId": project.id, # Associate with an existing project
"datasetId": dataset.id, # 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
بشكل افتراضي، تنفذ طريقة الحذف حذفًا بسيطًا، حيث تضع علامة على النموذج على أنه غير نشط دون إزالته نهائيًا. إذا كنت تريد إجراء عملية حذف نهائي وإزالة النموذج مع البيانات المرتبطة به بشكل دائم، يمكنك تمرير الوسيطة 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 of results
print("Next page result:", model_list.results) # Displays the next page's models
model_list.previous() # Return to the previous page of results
print("Previous page result:", model_list.results) # Displays the previous page's models
تحميل وتصور مقاييس التدريب
لتتبع مقاييس أداء نموذجك وتصورها طوال عملية التدريب، استخدم هذه الوظيفة لتحميل مقاييس مثل الخسارة والدقة. يتيح ذلك المراقبة المستمرة لتقدم التدريب ويبسط مرحلة التحليل.
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) # Prints out the weight url link
تحميل نقطة تدقيق نموذج
يتم تحميل نقطة تفتيش نموذجية بشكل مباشر باستخدام أداة 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 مجموعة شاملة من العمليات لإدارة النماذج بفعالية، مما يتيح لك التركيز على تحقيق أفضل النتائج في مساعي التعلم الآلي الخاصة بك. إذا كان لديك أي أسئلة أخرى أو تحتاج إلى مساعدة، يُرجى التواصل مع مجتمعنا المرحب بك أو فريق الدعم. نمذجة سعيدة! 🚀