تصدير نموذج برمجيًا

تتوفر أيضا جميع خيارات التصدير المتوفرة على موقع Custom Vision على الويب برمجيا من خلال مكتبات العميل. قد ترغب في استخدام مكتبات العميل حتى تتمكن من أتمتة عملية إعادة تدريب وتحديث تكرار النموذج الذي تستخدمه على جهاز محلي.

يوضح هذا الدليل كيفية تصدير النموذج إلى ملف ONNX باستخدام عدة تطوير البرامج Python.

إنشاء عميل للتدريب

تحتاج إلى عنصر CustomVisionTrainingClient لتصدير تكرار النموذج. أنشئ متغيرات نقطة نهاية Azure ومفاتيحها لموارد تدريب Custom Vision، واستخدمها لإنشاء عنصر العميل.

ENDPOINT = "PASTE_YOUR_CUSTOM_VISION_TRAINING_ENDPOINT_HERE"
training_key = "PASTE_YOUR_CUSTOM_VISION_TRAINING_KEY_HERE"

credentials = ApiKeyCredentials(in_headers={"Training-key": training_key})
trainer = CustomVisionTrainingClient(ENDPOINT, credentials)

هام

تذكر إزالة المفاتيح من التعليمات البرمجية عند الانتهاء، وعدم نشرها علنًا. للإنتاج، ضَع في اعتبارك استخدام طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها. لمزيد من المعلومات، راجع مقالة أمان خدمات Azure الذكاء الاصطناعي.

استدعاء أسلوب التصدير

استدعاء أسلوب export_iteration.

  • قدّم معرّف المشروع ومعرّف التكرار للنموذج الذي تريد تصديره.
  • تحدد معلمة platform النظام الأساسي للتصدير إليه: القيم المسموح بها هي CoreML, TensorFlow, DockerFile, ONNX, VAIDK, OpenVino.
  • تحدد معلمة flavor تنسيق النموذج المُصدَر: القيم المسموح بها هي Linux, Windows, ONNX10, ONNX12, ARM, TensorFlowNormal, TensorFlowLite.
  • تمنحك معلمة raw خيار استرداد استجابة JSON الأولية بجانب استجابة نموذج العنصر.
project_id = "PASTE_YOUR_PROJECT_ID"
iteration_id = "PASTE_YOUR_ITERATION_ID"
platform = "ONNX"
flavor = "ONNX10"
export = trainer.export_iteration(project_id, iteration_id, platform, flavor, raw=False)

لمزيد من المعلومات، راجع أسلوب export_iteration.

هام

إذا صدّرت تكرار معين بالفعل، فلا يمكنك استدعاء أسلوب export_iteration مُجددًا. بدلًا من ذلك، انتقل إلى استدعاء أسلوب get_exports للحصول على ارتباط إلى النموذج المُصدَر الحالي.

تنزيل النموذج المُصدَر

ستستدعي بعد ذلك أسلوب get_exports للتحقق من حالة عملية التصدير. تعمل العملية بشكل غير متزامن، لذلك يجب استقصاء هذا الأسلوب حتى تكتمل العملية. يُمكنك، عند الاكتمال، استرداد URI حيث يمكنك تنزيل تكرار النموذج إلى جهازك.

while (export.status == "Exporting"):
    print ("Waiting 10 seconds...")
    time.sleep(10)
    exports = trainer.get_exports(project_id, iteration_id)
    # Locate the export for this iteration and check its status  
    for e in exports:
        if e.platform == export.platform and e.flavor == export.flavor:
            export = e
            break
    print("Export status is: ", export.status)

لمزيد من المعلومات، راجع أسلوب get_exports.

بعد ذلك، يمكنك تنزيل النموذج المُصدَر برمجيًا إلى موقع على جهازك.

if export.status == "Done":
    # Success, now we can download it
    export_file = requests.get(export.download_uri)
    with open("export.zip", "wb") as file:
        file.write(export_file.content)

الخطوات التالية

قم بدمج النموذج الذي تم تصديره في تطبيق عن طريق استكشاف إحدى المقالات أو العينات التالية: