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

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

إليك الميزات الرئيسية التي تجعل من 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، العائلة الوحيدة التي توفر تلك الرؤوس.
التصدير إلى 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 | حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون رقماً صحيحاً للصور المربعة أو صفاً (tuple) (height, width) لأبعاد محددة. |
dynamic | bool | False | يسمح بأحجام إدخال ديناميكية، مما يعزز المرونة في التعامل مع أبعاد الصور المتغيرة. |
quantize | int أو str | None | دقة الكم: 16 (FP16) يتطلب تصدير وحدة معالجة الرسوميات (GPU) باستخدام device=0؛ 32/غير المُعَيَّن هو FP32. يحل محل علامة half المهملة. |
nms | bool | False | يضيف كبت غير الحد الأقصى (NMS)، وهو أمر ضروري لمعالجة الاكتشاف بدقة وكفاءة. |
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 الخاصة بك في إعدادات أخرى، ألق نظرة على الموارد التالية:
-
استكشاف النشر على الأجهزة المحمولة: استخدم خط لبيانات 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.