Link to this sectionتصدير نموذج YOLO26 إلى TorchScript للنشر السريع#
يتطلب نشر نماذج رؤية الحاسوب عبر بيئات مختلفة، بما في ذلك الأنظمة المدمجة، أو متصفحات الويب، أو المنصات ذات الدعم المحدود لـ Python، حلاً مرناً وقابلاً للنقل. يركز TorchScript على قابلية النقل والقدرة على تشغيل النماذج في بيئات لا يتوفر فيها إطار عمل Python بالكامل. وهذا يجعله مثالياً للسيناريوهات التي تحتاج فيها إلى نشر قدرات رؤية الحاسوب الخاصة بك عبر أجهزة أو منصات متنوعة.
قم بالتصدير إلى TorchScript لتسلسل نماذج Ultralytics YOLO26 الخاصة بك من أجل التوافق عبر المنصات والنشر المبسط. في هذا الدليل، سنوضح لك كيفية تصدير نماذج YOLO26 الخاصة بك إلى تنسيق TorchScript، مما يسهل عليك استخدامها عبر نطاق أوسع من التطبيقات.
Link to this sectionلماذا يجب عليك التصدير إلى TorchScript؟#

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

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

إليك الميزات الرئيسية التي تجعل من TorchScript أداة قيمة للمطورين:
-
تنفيذ الرسم البياني الثابت (Static Graph Execution): يستخدم TorchScript تمثيلاً بيانياً ثابتاً لحسابات النموذج، وهو ما يختلف عن تنفيذ الرسم البياني الديناميكي في PyTorch. في تنفيذ الرسم البياني الثابت، يتم تعريف الرسم البياني الحسابي وتجميعه مرة واحدة قبل التنفيذ الفعلي، مما يؤدي إلى تحسين الأداء أثناء الاستنتاج.
-
تسلسل النماذج (Model Serialization): يتيح لك TorchScript تسلسل نماذج PyTorch إلى تنسيق مستقل عن المنصة. يمكن تحميل النماذج المتسلسلة دون الحاجة إلى كود Python الأصلي، مما يتيح النشر في بيئات تشغيل مختلفة.
-
تجميع JIT (JIT Compilation): يستخدم TorchScript التجميع في الوقت الفعلي (Just-In-Time) لتحويل نماذج PyTorch إلى تمثيل وسيط محسن. يقوم JIT بتجميع الرسم البياني الحسابي للنموذج، مما يتيح التنفيذ الفعال على الأجهزة المستهدفة.
-
التكامل عبر اللغات (Cross-Language Integration): باستخدام TorchScript، يمكنك تصدير نماذج PyTorch إلى لغات أخرى مثل C++ وJava وJavaScript. وهذا يسهل دمج نماذج PyTorch في أنظمة برمجية موجودة مكتوبة بلغات مختلفة.
-
التحويل التدريجي (Gradual Conversion): يوفر TorchScript نهجاً تحويلياً تدريجياً، مما يسمح لك بتحويل أجزاء من نموذج PyTorch الخاص بك إلى TorchScript بشكل متزايد. هذه المرونة مفيدة بشكل خاص عند التعامل مع النماذج المعقدة أو عندما تريد تحسين أجزاء معينة من الكود.
Link to this sectionخيارات النشر في TorchScript#
قبل أن ننظر إلى الكود الخاص بتصدير نماذج YOLO26 إلى تنسيق TorchScript، دعنا نفهم أين تُستخدم نماذج TorchScript عادةً.
يوفر TorchScript خيارات نشر متنوعة لنماذج تعلم الآلة، مثل:
-
واجهة برمجة تطبيقات C++ (C++ API): حالة الاستخدام الأكثر شيوعاً لـ TorchScript هي واجهة برمجة تطبيقات C++ الخاصة به، والتي تسمح لك بتحميل وتنفيذ نماذج TorchScript المحسنة مباشرة داخل تطبيقات C++. هذا مثالي لبيئات الإنتاج حيث قد لا تكون Python مناسبة أو متاحة. توفر واجهة C++ تنفيذاً فعالاً وبنفقات منخفضة لنماذج TorchScript، مما يزيد من إمكانات الأداء إلى أقصى حد.
-
النشر على الأجهزة المحمولة (Mobile Deployment): يوفر TorchScript أدوات لتحويل النماذج إلى تنسيقات قابلة للنشر بسهولة على الأجهزة المحمولة. توفر PyTorch Mobile وقت تشغيل لتنفيذ هذه النماذج داخل تطبيقات iOS وAndroid. وهذا يتيح قدرات استنتاج في وضع عدم الاتصال (offline) وزمن انتقال منخفض، مما يعزز تجربة المستخدم وخصوصية البيانات.
-
النشر السحابي (Cloud Deployment): يمكن نشر نماذج TorchScript على خوادم سحابية باستخدام حلول مثل TorchServe. فهو يوفر ميزات مثل إصدار النماذج، والتجميع (batching)، ومراقبة المقاييس للنشر القابل للتطوير في بيئات الإنتاج. يمكن للنشر السحابي باستخدام TorchScript جعل نماذجك متاحة عبر واجهات برمجة التطبيقات (APIs) أو خدمات الويب الأخرى.
Link to this sectionالتصدير إلى TorchScript: تحويل نموذج YOLO26 الخاص بك#
تجعل عملية تصدير نماذج YOLO26 إلى TorchScript من السهل استخدامها في أماكن مختلفة وتساعدها على العمل بشكل أسرع وأكثر كفاءة. هذا رائع لأي شخص يتطلع إلى استخدام نماذج التعلم العميق بشكل أكثر فعالية في التطبيقات الواقعية.
Link to this sectionالتثبيت#
لتثبيت الحزمة المطلوبة، قم بتشغيل:
# Install the required package for YOLO26
pip install ultralyticsللحصول على تعليمات مفصلة وأفضل الممارسات المتعلقة بعملية التثبيت، تحقق من دليل تثبيت Ultralytics الخاص بنا. أثناء تثبيت الحزم المطلوبة لـ YOLO26، إذا واجهت أي صعوبات، فاستشر دليل المشكلات الشائعة للحصول على حلول ونصائح.
Link to this sectionالاستخدام#
تم تصميم جميع نماذج 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")Link to this sectionوسائط التصدير#
| الوسيط | النوع | الافتراضي | الوصف |
|---|---|---|---|
format | str | 'torchscript' | التنسيق المستهدف للنموذج المصدر، والذي يحدد التوافق مع بيئات النشر المختلفة. |
imgsz | int أو tuple | 640 | حجم الصورة المطلوب لمدخل النموذج. يمكن أن يكون عدداً صحيحاً للصور المربعة أو زوجاً مرتباً (height, width) لأبعاد محددة. |
dynamic | bool | False | يسمح بأحجام إدخال ديناميكية، مما يعزز المرونة في التعامل مع أبعاد الصور المتغيرة. |
quantize | int أو str | None | دقة التكميم: 16 (FP16) تتطلب تصديرًا عبر وحدة معالجة الرسومات (GPU) باستخدام device=0؛ بينما 32 أو تركها بدون تعيين تعني FP32. تحل هذه محل علامة half التي تم إيقاف دعمها. |
optimize | bool | False | يطبق التحسينات للأجهزة المحمولة، مما قد يقلل من حجم النموذج ويحسن الأداء. |
nms | bool | False | يضيف كبت غير الحد الأقصى (NMS)، وهو أمر ضروري لمعالجة الاكتشاف بدقة وكفاءة. |
batch | int | 1 | يحدد حجم استدلال دفعة النموذج المصدر أو الحد الأقصى لعدد الصور التي سيعالجها النموذج المصدر في وقت واحد في وضع predict. |
device | str | None | يحدد الجهاز للتصدير: GPU (device=0)، CPU (device=cpu)، أو MPS لأجهزة Apple silicon (device=mps). |
لمزيد من التفاصيل حول عملية التصدير، تفضل بزيارة صفحة وثائق Ultralytics حول التصدير.
Link to this sectionنشر نماذج YOLO26 TorchScript المصدرة#
بعد تصدير نماذج Ultralytics YOLO26 الخاصة بك بنجاح إلى تنسيق TorchScript، يمكنك الآن نشرها. الخطوة الأولى الأساسية والموصى بها لتشغيل نموذج TorchScript هي استخدام طريقة YOLO("model.torchscript")، كما هو موضح في مقتطف كود الاستخدام السابق. للحصول على تعليمات متعمقة حول نشر نماذج TorchScript الخاصة بك في إعدادات أخرى، ألق نظرة على الموارد التالية:
-
استكشف النشر على الأجهزة المحمولة: توفر وثائق PyTorch للهواتف المحمولة إرشادات شاملة لنشر النماذج على الأجهزة المحمولة، مما يضمن أن تكون تطبيقاتك فعالة وسريعة الاستجابة.
-
أتقن النشر من جانب الخادم: تعلم كيفية نشر النماذج من جانب الخادم باستخدام TorchServe، مع تقديم برنامج تعليمي خطوة بخطوة لخدمة النماذج بشكل قابل للتطوير وفعال.
-
تنفيذ النشر بـ C++: تعمق في البرنامج التعليمي حول تحميل نموذج TorchScript في C++، مما يسهل دمج نماذج TorchScript الخاصة بك في تطبيقات C++ لتحسين الأداء وتعدد الاستخدامات.
Link to this sectionملخص#
في هذا الدليل، استكشفنا عملية تصدير نماذج Ultralytics YOLO26 إلى تنسيق TorchScript. من خلال اتباع التعليمات المقدمة، يمكنك تحسين نماذج YOLO26 للحصول على الأداء واكتساب المرونة لنشرها عبر منصات وبيئات متنوعة.
لمزيد من التفاصيل حول الاستخدام، تفضل بزيارة وثائق TorchScript الرسمية.
أيضاً، إذا كنت ترغب في معرفة المزيد عن عمليات تكامل Ultralytics YOLO26 الأخرى، فقم بزيارة صفحة دليل التكامل. ستجد هناك الكثير من الموارد والرؤى المفيدة.
Link to this sectionالأسئلة الشائعة#
Link to this sectionما هو تصدير نموذج Ultralytics YOLO26 إلى TorchScript؟#
يسمح تصدير نموذج Ultralytics YOLO26 إلى TorchScript بالنشر المرن عبر المنصات. يسهل TorchScript، وهو جزء من نظام PyTorch البيئي، تسلسل النماذج، والتي يمكن بعد ذلك تنفيذها في بيئات تفتقر إلى دعم Python. وهذا يجعله مثالياً لنشر النماذج على الأنظمة المدمجة، وبيئات C++، وتطبيقات الهاتف المحمول، وحتى متصفحات الويب. يتيح التصدير إلى TorchScript أداءً فعالاً وقابلية تطبيق أوسع لنماذج YOLO26 الخاصة بك عبر منصات متنوعة.
Link to this sectionكيف يمكنني تصدير نموذج 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 حول التصدير.
Link to this sectionلماذا يجب علي استخدام TorchScript لنشر نماذج YOLO26؟#
يوفر استخدام TorchScript لنشر نماذج YOLO26 العديد من المزايا:
- قابلية النقل: يمكن للنماذج المصدرة العمل في بيئات دون الحاجة إلى Python، مثل تطبيقات C++، أو الأنظمة المدمجة، أو الأجهزة المحمولة.
- التحسين: يدعم TorchScript تنفيذ الرسم البياني الثابت والتجميع في الوقت الفعلي (JIT)، مما يمكن أن يحسن أداء النموذج.
- التكامل عبر اللغات: يمكن دمج نماذج TorchScript في لغات برمجة أخرى، مما يعزز المرونة والقابلية للتوسع.
- التسلسل: يمكن تسلسل النماذج، مما يسمح بالتحميل والاستنتاج بشكل مستقل عن المنصة.
لمزيد من الأفكار حول النشر، تفضل بزيارة وثائق TorchServe ودليل نشر C++. بالنسبة للنشر على الأجهزة المحمولة، توصي PyTorch الآن بـ ExecuTorch، الذي يستخدم مسار torch.export() → .pte المنفصل الخاص به بدلاً من TorchScript.
Link to this sectionما هي خطوات التثبيت لتصدير نماذج YOLO26 إلى TorchScript؟#
لتثبيت الحزمة المطلوبة لتصدير نماذج YOLO26، استخدم الأمر التالي:
# Install the required package for YOLO26
pip install ultralyticsللحصول على تعليمات مفصلة، تفضل بزيارة دليل تثبيت Ultralytics. إذا ظهرت أي مشكلات أثناء التثبيت، فاستشر دليل المشكلات الشائعة.
Link to this sectionكيف أقوم بنشر نماذج TorchScript YOLO26 المصدرة الخاصة بي؟#
بعد تصدير نماذج YOLO26 إلى تنسيق TorchScript، يمكنك نشرها عبر مجموعة متنوعة من المنصات:
- واجهة برمجة تطبيقات C++: مثالية لبيئات الإنتاج ذات النفقات المنخفضة والكفاءة العالية.
- النشر على الأجهزة المحمولة: قم بتشغيل نماذج TorchScript على الجهاز باستخدام LibTorch (وقت تشغيل PyTorch لـ C++). بالنسبة للمشاريع المحمولة الجديدة، توصي PyTorch بـ ExecuTorch، وهو مسار تصدير
.pteمنفصل. - النشر السحابي: استخدم خدمات مثل TorchServe للنشر القابل للتطوير من جانب الخادم.
استكشف الإرشادات الشاملة لنشر النماذج في هذه الإعدادات للاستفادة الكاملة من إمكانات TorchScript.