YOLO Vision 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++ API: حالة الاستخدام الأكثر شيوعاً لـ TorchScript هي LibTorch C++ API، والتي تتيح لك تحميل وتنفيذ نماذج TorchScript المحسنة مباشرة داخل تطبيقات C++. هذا مثالي لبيئات الإنتاج حيث قد لا تكون Python مناسبة أو متاحة. توفر C++ API تنفيذاً منخفض الحمل وعالي الكفاءة لنماذج TorchScript، مما يزيد من إمكانات الأداء.

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

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

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

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

المهمةYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
الوضعية
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حجم الصورة المطلوب لمدخل النموذج. يمكن أن يكون عدداً صحيحاً للصور المربعة أو زوجاً مرتباً (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 الخاصة بك في إعدادات أخرى، ألق نظرة على الموارد التالية:

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

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

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

ملخص#

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

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

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

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

ما هو تصدير نموذج Ultralytics YOLO26 إلى TorchScript؟#

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

كيف يمكنني تصدير نموذج YOLO26 الخاص بي إلى TorchScript باستخدام 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'

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

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")

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

لماذا يجب علي استخدام TorchScript لنشر نماذج YOLO26؟#

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

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

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

ما هي خطوات التثبيت لتصدير نماذج YOLO26 إلى TorchScript؟#

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

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

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

كيف أقوم بنشر نماذج TorchScript YOLO26 المصدرة الخاصة بي؟#

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

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

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

التعليقات