رؤية YOLO 2026:

تصدير نموذج YOLO26 إلى TorchScript للنشر السريع#

يقوم PyTorch بإيقاف دعم TorchScript

لقد قامت PyTorch بإهمال TorchScript وتعمل تدريجياً على إزالة ميزاته. بالنسبة لعمليات نشر الأجهزة المحمولة والحافة الجديدة، استخدم تكامل ExecuTorch المدعوم. تحتفظ Ultralytics بتصدير TorchScript العادي من أجل توافق C++ القديم.

يتطلب نشر نماذج الرؤية الحاسوبية في بيئات C++ بدون Python تمثيلاً متسلسلاً وقابلاً للنقل. يوفر TorchScript هذا التوافق لتطبيقات LibTorch القديمة.

قم بالتصدير إلى TorchScript لتسلسل نماذج Ultralytics YOLO26 الخاصة بك لضمان التوافق عبر المنصات والنشر المبسط. في هذا الدليل، سنوضح لك كيفية تصدير نماذج YOLO26 إلى تنسيق TorchScript، مما يسهل عليك استخدامها عبر نطاق أوسع من التطبيقات.

لماذا يجب عليك التصدير إلى TorchScript؟#

نظرة عامة على سير عمل تسلسل ونشر نموذج TorchScript

تعتبر TorchScript، التي طورتها الجهات المبتكرة لـ PyTorch، أداة قوية لتحسين ونشر نماذج PyTorch عبر مجموعة متنوعة من المنصات. يُعد تصدير نماذج YOLO26 إلى TorchScript أمراً بالغ الأهمية الانتقال من مرحلة البحث إلى التطبيقات الواقعية. تساعد TorchScript، كجزء من إطار عمل PyTorch، في جعل هذا الانتقال أكثر سلاسة من خلال السماح باستخدام نماذج PyTorch في البيئات التي لا تدعم Python.

تتضمن العملية تقنيتين: التتبع (tracing) والبرمجة النصية (scripting). يسجل التتبع العمليات أثناء تنفيذ النموذج، بينما تسمح البرمجة النصية بتعريف النماذج باستخدام مجموعة فرعية من Python. تضمن هذه التقنيات أن النماذج مثل YOLO26 لا تزال قادرة على العمل ببراعة حتى خارج بيئة Python المعتادة.

مقارنة بين البرمجة النصية وتتبع TorchScript

يمكن أيضاً تحسين نماذج TorchScript من خلال تقنيات مثل دمج العمليات وتحسينات في استخدام الذاكرة، مما يضمن تنفيذاً فعالاً. ميزة أخرى للتصدير إلى TorchScript هي قدرته على تسريع تنفيذ النماذج عبر منصات أجهزة متنوعة. فهو ينشئ تمثيلاً مستقلاً وجاهزاً للإنتاج لنموذج PyTorch الخاص بك والذي يمكن دمجه في بيئات C++.

الميزات الرئيسية لنماذج TorchScript#

توفر TorchScript، وهي جزء أساسي من نظام PyTorch البيئي، ميزات قوية لتحسين ونشر نماذج التعلم العميق.

نظرة عامة على الميزات الرئيسية لـ TorchScript

إليك الميزات الرئيسية التي تجعل من TorchScript أداة قيمة للمطورين:

  • تنفيذ الرسم البياني الثابت (Static Graph Execution): يستخدم TorchScript تمثيلاً بيانياً ثابتاً لحسابات النموذج، وهو ما يختلف عن تنفيذ الرسم البياني الديناميكي في PyTorch. في تنفيذ الرسم البياني الثابت، يتم تعريف الرسم البياني الحسابي وتجميعه مرة واحدة قبل التنفيذ الفعلي، مما يؤدي إلى تحسين الأداء أثناء الاستنتاج.

  • تسلسل النماذج (Model Serialization): يتيح لك TorchScript تسلسل نماذج PyTorch إلى تنسيق مستقل عن المنصة. يمكن تحميل النماذج المتسلسلة دون الحاجة إلى كود Python الأصلي، مما يتيح النشر في بيئات تشغيل مختلفة.

  • تجميع JIT (JIT Compilation): يستخدم TorchScript التجميع في الوقت الفعلي (Just-In-Time) لتحويل نماذج PyTorch إلى تمثيل وسيط محسن. يقوم JIT بتجميع الرسم البياني الحسابي للنموذج، مما يتيح التنفيذ الفعال على الأجهزة المستهدفة.

  • التحويل التدريجي (Gradual Conversion): يوفر TorchScript نهجاً تحويلياً تدريجياً، مما يسمح لك بتحويل أجزاء من نموذج PyTorch الخاص بك إلى TorchScript بشكل متزايد. هذه المرونة مفيدة بشكل خاص عند التعامل مع النماذج المعقدة أو عندما تريد تحسين أجزاء معينة من الكود.

خيارات النشر في TorchScript#

قبل أن ننظر إلى الكود الخاص بتصدير نماذج YOLO26 إلى تنسيق TorchScript، دعنا نفهم أين تُستخدم نماذج TorchScript عادةً.

يقدم TorchScript خيارات نشر مختلفة لنماذج التعلم الآلي، مثل:

  • واجهة برمجة تطبيقات C++: الاستخدام الأكثر شيوعاً لـ TorchScript هو واجهة برمجة تطبيقات LibTorch C++، والتي تتيح لك تحميل وتشغيل نماذج TorchScript المحسنة مباشرة داخل تطبيقات C++. يُعد هذا مثالياً لبيئات الإنتاج حيث قد لا تكون Python مناسبة أو متاحة. توفر واجهة برمجة تطبيقات C++ تنفيذاً منخفض التكاليف وعالي الكفاءة لنماذج TorchScript، مما يظيم أداء الأداء إلى أقصى حد.

  • النشر على الأجهزة المحمولة: للاستدلال دون اتصال بالإنترنت بزمن انتقال منخفض وخصوصية البيانات على الأجهزة المحمولة، استخدم ExecuTorch، وهو بديل PyTorch لـ TorchScript Mobile.

  • النشر السحابي (Cloud Deployment): يمكن نشر نماذج TorchScript على خوادم سحابية باستخدام حلول مثل TorchServe. فهو يوفر ميزات مثل إصدار النماذج، والتجميع (batching)، ومراقبة المقاييس للنشر القابل للتطوير في بيئات الإنتاج. يمكن للنشر السحابي باستخدام TorchScript جعل نماذجك متاحة عبر واجهات برمجة التطبيقات (APIs) أو خدمات الويب الأخرى.

المهام المدعومة#

يدعم تصدير TorchScript جميع مهام Ultralytics السبع. تجزئة الدلالات وتقدير العمق متاحان فقط مع YOLO26، العائلة الوحيدة التي توفر تلك الرؤوس.

المهمةYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

التصدير إلى TorchScript: تحويل نموذج YOLO26 الخاص بك#

تجعل عملية تصدير نماذج YOLO26 إلى TorchScript من السهل استخدامها في أماكن مختلفة وتساعدها على العمل بشكل أسرع وأكثر كفاءة. هذا رائع لأي شخص يتطلع إلى استخدام نماذج التعلم العميق بشكل أكثر فعالية في التطبيقات الواقعية.

التثبيت#

لتثبيت الحزمة المطلوبة، قم بتشغيل:

التثبيت
# Install the required package for YOLO26
pip install ultralytics

للحصول على إرشادات مفصلة وأفضل الممارسات المتعلقة بعملية التثبيت، راجع دليل تثبيت Ultralytics. أثناء تثبيت الحزم المطلوبة لـ YOLO26، إذا واجهت أي صعوبات، فاستشر دليل المشكلات الشائعة للحصول على الحلول والنصائح.

الاستخدام#

تم تصميم جميع نماذج Ultralytics YOLO26 لدعم التصدير خارج الصندوق، مما يسهل دمجها في سيرงาน النشر المفضل لديك. يمكنك عرض القائمة الكاملة لتنسيقات التصدير المدعومة وخيارات التكوين لاختيار الإعداد الأفضل لتطبيقك.

يدعم تنسيق TorchScript أوضاع التصدير والتنبؤ والتحقق. قم بتصدير نموذجك، ثم قم بتحميل النموذج المُصَدَّر لتشغيل الاستدلال أو التحقق من دقته.

التصدير
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'
التنبؤ
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
التحقق
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

وسائط التصدير#

الوسيطالنوعالافتراضيالوصف
formatstr'torchscript'التنسيق المستهدف للنموذج المصدر، والذي يحدد التوافق مع بيئات النشر المختلفة.
imgszint أو tuple640حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون رقماً صحيحاً للصور المربعة أو صفاً (tuple) (height, width) لأبعاد محددة.
dynamicboolFalseيسمح بأحجام إدخال ديناميكية، مما يعزز المرونة في التعامل مع أبعاد الصور المتغيرة.
quantizeint أو strNoneدقة الكم: 16 (FP16) يتطلب تصدير وحدة معالجة الرسوميات (GPU) باستخدام device=0؛ 32/غير المُعَيَّن هو FP32. يحل محل علامة half المهملة.
nmsboolFalseيضيف كبت غير الحد الأقصى (NMS)، وهو أمر ضروري لمعالجة الاكتشاف بدقة وكفاءة.
batchint1يحدد حجم الاستدلال المفعلي لنموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدّر في نفس الوقت في وضع predict.
devicestrNoneيحدد الجهاز المراد التصدير إليه: وحدة معالجة الرسومات GPU (device=0)، وحدة المعالجة المركزية CPU (device=cpu)، MPS لشريحة Apple silicon (device=mps).

لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.

نشر نماذج YOLO26 TorchScript المصدرة#

بعد تصدير نماذج Ultralytics YOLO26 بنجاح إلى تنسيق TorchScript، يمكنك الآن نشرها. الخطوة الأولى الأساسية والموصى بها لتشغيل نموذج TorchScript هي استخدام طريقة YOLO("model.torchscript")، كما هو موضح في مقتطف رمز الاستخدام السابق. للحصول على إرشادات متعمقة حول نشر نماذج TorchScript الخاصة بك في إعدادات أخرى، ألق نظرة على الموارد التالية:

  • استكشاف النشر على الأجهزة المحمولة: استخدم خط لبيانات ExecuTorch المنفصل torch.export().pte للنشر الحالي على الأجهزة المحمولة لـ PyTorch.

  • إتقان النشر من جانب الخادم: تعرف على كيفية نشر النماذج من جانب الخادم باستخدام TorchServe، مما يوفر مرشد تعليمي خطوة بخطوة لتقديم النماذج بكفاءة وقابلية للتوسع.

  • تنفيذ نشر C++: تعمق في البرنامج التعليمي حول تحميل نموذج TorchScript في C++، مما يسهل دمج نماذج TorchScript الخاصة بك في تطبيقات C++ لتحسين الأداء وتعدد الاستخدامات.

ملخص#

في هذا الدليل، استكشفنا عملية تصدير نماذج Ultralytics YOLO26 إلى تنسيق TorchScript. من خلال اتباع التعليمات المقدمة، يمكنك تحسين نماذج YOLO26 للحصول على الأداء واكتساب المرونة لنشرها عبر منصات وبيئات متنوعة.

لمزيد من التفاصيل حول الاستخدام، تفضل بزيارة التوثيق الرسمي لـ TorchScript.

أيضاً، إذا كنت ترغب في معرفة المزيد حول تكاملات Ultralytics YOLO26 الأخرى، تفضل بزيارة صفحة دليل التكامل. ستجد هناك الكثير من الموارد والرؤى المفيدة.

الأسئلة الشائعة#

  • يتيح تصدير نموذج Ultralytics YOLO26 إلى TorchScript إمكانية النشر المرن عبر المنصات. يسهل TorchScript، وهو جزء من نظام PyTorch البيئي، تسلسل النماذج، والتي يمكن بعد ذلك تنفيذها في البيئات التي تفتقر إلى دعم Python. وهذا يجعله مفيداً لنشر النماذج في بيئات C++.

  • لتصدير نموذج YOLO26 إلى TorchScript، يمكنك استخدام مثال الكود التالي:

    الاستخدام
    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to TorchScript format
    model.export(format="torchscript")  # creates 'yolo26n.torchscript'
    
    # Load the exported TorchScript model
    torchscript_model = YOLO("yolo26n.torchscript")
    
    # Run inference
    results = torchscript_model("https://ultralytics.com/images/bus.jpg")

    لمزيد من التفاصيل حول عملية التصدير، راجع توثيق Ultralytics حول التصدير.

  • يوفر استخدام TorchScript لنشر نماذج YOLO26 العديد من المزايا:

    • قابلية النقل: يمكن تشغيل النماذج المصدرة في تطبيقات C++ بدون Python.
    • التحسين: يدعم TorchScript تنفيذ الرسم البياني الثابت والتجميع في الوقت الفعلي (JIT)، مما يمكن أن يحسن أداء النموذج.
    • التكامل عبر اللغات: يمكن دمج نماذج TorchScript في لغات برمجة أخرى، مما يعزز المرونة والقابلية للتوسع.
    • التسلسل: يمكن تسلسل النماذج، مما يسمح بالتحميل والاستنتاج بشكل مستقل عن المنصة.

    لمزيد من الرؤى حول النشر، تفضل بزيارة توثيق TorchServe ودليل نشر C++. بالنسبة للنشر على الأجهزة المحمولة على الجهاز، توصي PyTorch الآن بـ ExecuTorch، والذي يستخدم خط لبيانات منفصل خاص به torch.export().pte بدلاً من TorchScript.

  • لتثبيت الحزمة المطلوبة لتصدير نماذج YOLO26، استخدم الأمر التالي:

    التثبيت
    # Install the required package for YOLO26
    pip install ultralytics

    للحصول على إرشادات مفصلة، تفضل بزيارة دليل تثبيت Ultralytics. إذا ظهرت أي مشكلات أثناء التثبيت، فاستشر دليل المشكلات الشائعة.

  • بعد تصدير نماذج YOLO26 إلى تنسيق TorchScript، يمكنك نشرها عبر مجموعة متنوعة من المنصات:

    • واجهة برمجة تطبيقات C++: استخدم LibTorch لبيئات إنتاج منخفضة التكاليف وعالية الكفاءة.
    • النشر على الأجهزة المحمولة: استخدم ExecuTorch، وهو البديل المدعوم من PyTorch مع خط لبيانات تصدير منفصل .pte.
    • النشر السحابي: استخدم خدمات مثل TorchServe للنشر القابل للتوسع من جانب الخادم.

    استكشف الإرشادات الشاملة لنشر النماذج في هذه الإعدادات للاستفادة الكاملة من إمكانات TorchScript.

التعليقات