تصدير نموذج YOLO26 إلى TorchScript للنشر السريع#
لقد أوقفت PyTorch دعم TorchScript وتزيل ميزاته تدريجيًا. بالنسبة إلى عمليات النشر الجديدة على الأجهزة المحمولة والطرفية، استخدم تكامل ExecuTorch المدعوم. تحتفظ Ultralytics بخيار التصدير العادي إلى TorchScript للتوافق مع C++ القديم.
يتطلب نشر نماذج الرؤية الحاسوبية في بيئات C++ من دون Python تمثيلًا متسلسلًا قابلًا للنقل. يوفر TorchScript هذا التوافق لتطبيقات LibTorch القديمة.
صدّر نماذج Ultralytics YOLO26 لتسلسلها باستخدام TorchScript وتحقيق التوافق عبر المنصات وتبسيط عملية النشر. في هذا الدليل، سنوضح لك كيفية تصدير نماذج YOLO26 إلى تنسيق TorchScript، مما يسهل استخدامها عبر نطاق أوسع من التطبيقات.
لماذا ينبغي تصدير النموذج إلى TorchScript؟#

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

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

فيما يلي الميزات الرئيسية التي تجعل TorchScript أداة قيّمة للمطورين:
-
تنفيذ الرسم البياني الساكن: يستخدم TorchScript تمثيلًا ساكنًا للرسم البياني لحسابات النموذج، وهو يختلف عن تنفيذ الرسم البياني الديناميكي في PyTorch. في تنفيذ الرسم البياني الساكن، يُعرَّف الرسم البياني الحسابي ويُجمَّع مرة واحدة قبل التنفيذ الفعلي، مما يؤدي إلى تحسين الأداء أثناء الاستدلال.
-
تسلسل النموذج: يتيح TorchScript تسلسل نماذج PyTorch إلى تنسيق مستقل عن المنصة. ويمكن تحميل النماذج المتسلسلة من دون الحاجة إلى شيفرة Python الأصلية، مما يتيح نشرها في بيئات تشغيل مختلفة.
-
التجميع في الوقت المناسب (JIT): يستخدم TorchScript التجميع في الوقت المناسب (JIT) لتحويل نماذج PyTorch إلى تمثيل وسيط مُحسَّن. ويُجمِّع JIT الرسم البياني الحسابي للنموذج، مما يتيح تنفيذًا فعالًا على الأجهزة المستهدفة.
-
التحويل التدريجي: يوفر TorchScript أسلوبًا تدريجيًا للتحويل، مما يتيح تحويل أجزاء من نموذج PyTorch إلى TorchScript بشكل متزايد. وتفيد هذه المرونة خصوصًا عند التعامل مع النماذج المعقدة أو عند الرغبة في تحسين أجزاء محددة من الشيفرة.
خيارات النشر في TorchScript#
قبل استعراض شيفرة تصدير نماذج YOLO26 إلى تنسيق TorchScript، لنتعرف إلى المواضع التي تُستخدم فيها نماذج TorchScript عادةً.
يوفر TorchScript خيارات نشر متنوعة لنماذج التعلم الآلي، مثل:
-
واجهة برمجة تطبيقات C++: تتمثل حالة الاستخدام الأكثر شيوعًا لـ TorchScript في واجهة برمجة تطبيقات LibTorch لـ C++، التي تتيح تحميل نماذج TorchScript المُحسَّنة وتنفيذها مباشرةً داخل تطبيقات C++. وهذا مثالي لبيئات الإنتاج التي قد لا تكون Python مناسبة أو متاحة فيها. وتوفر واجهة برمجة تطبيقات C++ تنفيذًا فعالًا لنماذج TorchScript مع عبء منخفض، مما يزيد إلى أقصى حد من إمكانات الأداء.
-
النشر على الأجهزة المحمولة: للاستدلال منخفض زمن الاستجابة وغير المتصل بالإنترنت وحماية خصوصية البيانات على الأجهزة المحمولة، استخدم ExecuTorch، بديل PyTorch لـ TorchScript Mobile.
-
النشر السحابي: يمكن نشر نماذج TorchScript على خوادم قائمة على السحابة باستخدام حلول مثل TorchServe. ويوفر ذلك ميزات مثل تحديد إصدارات النماذج والتجميع ومراقبة المقاييس للنشر القابل للتوسع في بيئات الإنتاج. ويمكن للنشر السحابي باستخدام TorchScript إتاحة نماذجك عبر واجهات برمجة التطبيقات أو خدمات الويب الأخرى.
المهام المدعومة#
يدعم التصدير إلى TorchScript جميع مهام Ultralytics السبع. ولا يتوفر التقسيم الدلالي وتقدير العمق إلا مع YOLO26، وهي العائلة الوحيدة التي تتضمن رأسي المهام هذين.
التصدير إلى 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")وسائط التصدير#
| الوسيطة | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'torchscript' | التنسيق المستهدف للنموذج المُصدَّر، والذي يحدد التوافق مع بيئات النشر المختلفة. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة أو صفًا (height, width) لأبعاد محددة. |
dynamic | bool | False | يسمح بأحجام إدخال ديناميكية، مما يعزز المرونة في التعامل مع أبعاد الصور المتفاوتة. |
quantize | int أو str | None | دقة التكميم: يتطلب 16 (FP16) التصدير باستخدام GPU مع device=0؛ أما 32/غير المحدد فيستخدم FP32. ويحل محل العلامة المتوقفة half. |
nms | bool، اختياري | None | حدد الناتج الخام (None، الافتراضي)، أو المعالجة غير اللحظية المدمجة (NMS) (True)، أو رأس النموذج الخالي من المعالجة غير اللحظية (NMS) (False). |
batch | int | 1 | يحدد حجم الدفعة للاستدلال في نموذج التصدير أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المُصدَّر بالتزامن في وضع predict. |
device | str | None | يحدد الجهاز المستخدم للتصدير: 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 نشرًا مرنًا عبر المنصات. ويسهّل 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.