تصدير نموذج YOLO26 إلى TorchScript للنشر السريع#
لقد أوقفت PyTorch اعتماد TorchScript، وهي تعمل تدريجيًا على إزالة ميزاته. لعمليات النشر الجديدة على الأجهزة المحمولة والطرفية، استخدم تكامل ExecuTorch المدعوم. وتُبقي Ultralytics على إمكانية التصدير المعتادة إلى TorchScript لضمان التوافق مع C++ القديم.
يتطلب نشر نماذج الرؤية الحاسوبية في بيئات C++ من دون Python تمثيلًا تسلسليًا محمولًا. ويوفر TorchScript هذا التوافق لتطبيقات LibTorch القديمة.
صدّر إلى TorchScript لتسلسل نماذج Ultralytics YOLO26 بما يضمن التوافق بين المنصات ويسهّل النشر. في هذا الدليل، سنوضح كيفية تصدير نماذج 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 الأصلية، ما يتيح نشرها في بيئات تشغيل مختلفة.
-
الترجمة الفورية: يستخدم TorchScript الترجمة في الوقت المناسب (JIT) لتحويل نماذج PyTorch إلى تمثيل وسيط محسّن. ويترجم JIT الرسم البياني الحسابي للنموذج، مما يتيح تنفيذه بكفاءة على الأجهزة المستهدفة.
-
التحويل التدريجي: يوفر TorchScript نهجًا تدريجيًا للتحويل، يتيح لك تحويل أجزاء من نموذج PyTorch إلى TorchScript على مراحل. وتفيد هذه المرونة خصوصًا عند التعامل مع نماذج معقدة أو عند الرغبة في تحسين أجزاء محددة من الشيفرة.
خيارات النشر في TorchScript#
قبل الاطلاع على شيفرة تصدير نماذج YOLO26 إلى تنسيق TorchScript، لنتعرّف إلى المواضع التي تُستخدم فيها نماذج TorchScript عادةً.
يوفر TorchScript خيارات متنوعة لنشر نماذج تعلّم الآلة، مثل:
-
C++ API: من أكثر حالات استخدام TorchScript شيوعًا واجهة LibTorch البرمجية لـ C++، التي تتيح تحميل نماذج TorchScript المحسّنة وتنفيذها مباشرةً ضمن تطبيقات C++. وهذا مناسب تمامًا لبيئات الإنتاج التي قد لا تكون Python فيها ملائمة أو متاحة. وتوفر C++ API تنفيذًا فعّالًا لنماذج TorchScript مع عبء إضافي منخفض، مما يعزز إمكانات الأداء إلى أقصى حد.
-
النشر على الأجهزة المحمولة: للاستدلال بزمن استجابة منخفض ومن دون اتصال، ولحماية خصوصية البيانات على الأجهزة المحمولة، استخدم ExecuTorch، البديل الذي تقدمه PyTorch لـ TorchScript Mobile.
-
النشر السحابي: يمكن نشر نماذج TorchScript على خوادم سحابية باستخدام حلول مثل TorchServe. ويوفر TorchServe ميزات مثل إصدار النماذج وتجميع الطلبات ومراقبة المقاييس، بما يتيح النشر القابل للتوسع في بيئات الإنتاج. ويمكن للنشر السحابي باستخدام TorchScript إتاحة الوصول إلى نماذجك عبر واجهات API أو خدمات ويب أخرى.
المهام المدعومة#
يدعم تصدير 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
# تحميل نموذج YOLO26
model = YOLO("yolo26n.pt")
# صدّر النموذج إلى تنسيق TorchScript
model.export(format="torchscript") # ينشئ 'yolo26n.torchscript'from ultralytics import YOLO
# حمّل نموذج TorchScript المُصدّر
model = YOLO("yolo26n.torchscript")
# تنفيذ الاستدلال
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# حمّل نموذج TorchScript المُصدّر
model = YOLO("yolo26n.torchscript")
# # التحقق من الدقة على مجموعة بيانات COCO8
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 # تحميل نموذج YOLO26 model = YOLO("yolo26n.pt") # صدّر النموذج إلى تنسيق TorchScript model.export(format="torchscript") # ينشئ 'yolo26n.torchscript' # حمّل نموذج TorchScript المُصدّر torchscript_model = YOLO("yolo26n.torchscript") # تنفيذ الاستدلال 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.