تخطي إلى المحتوى

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

📅 تم إنشاؤها منذ 1 سنة مضت ✏️ تم التحديث منذ 1 شهر

التعليقات