انتقل إلى المحتوى

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"},  # 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")  # Retrieves the URL for the model's optimal checkpoint weights. By default, it returns the URL for the best weights. To obtain the most recent weights, specify '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 مجموعة شاملة من العمليات لإدارة النماذج بشكل فعال، مما يتيح لك التركيز على تحقيق أفضل النتائج في مساعي التعلم الآلي الخاصة بك. إذا كانت لديك أي أسئلة أخرى أو كنت بحاجة إلى مساعدة ، فيرجى التواصل مع مجتمعنا الترحيبي أو فريق الدعم. نمذجة سعيدة! 🚀


التعليقات