تصدير نموذج YOLO11 إلى TorchScript للنشر السريع
يتطلب نشر نماذج الرؤية الحاسوبية عبر بيئات مختلفة، بما في ذلك الأنظمة المدمجة أو متصفحات الويب أو الأنظمة الأساسية ذات دعم python المحدود، حلاً مرنًا وقابلاً للنقل. يركز TorchScript على قابلية النقل والقدرة على تشغيل النماذج في البيئات التي لا يتوفر فيها إطار عمل python بأكمله. وهذا يجعله مثاليًا للسيناريوهات التي تحتاج فيها إلى نشر قدرات الرؤية الحاسوبية الخاصة بك عبر أجهزة أو أنظمة أساسية مختلفة.
يمكنك التصدير إلى TorchScript لعمل تسلسل لـ نماذج Ultralytics YOLO11 الخاصة بك لتحقيق توافق عبر الأنظمة الأساسية ونشر مبسط. في هذا الدليل، سنوضح لك كيفية تصدير نماذج YOLO11 الخاصة بك إلى تنسيق TorchScript، مما يسهل عليك استخدامها عبر نطاق أوسع من التطبيقات.
لماذا يجب عليك التصدير إلى TorchScript؟
تم تطوير TorchScript بواسطة مبتكري PyTorch، وهي أداة قوية لتحسين ونشر نماذج PyTorch عبر مجموعة متنوعة من الأنظمة الأساسية. يعد تصدير نماذج YOLO11 إلى TorchScript أمرًا بالغ الأهمية للانتقال من البحث إلى التطبيقات الواقعية. يساعد TorchScript، وهو جزء من إطار عمل PyTorch، في جعل هذا الانتقال أكثر سلاسة من خلال السماح باستخدام نماذج PyTorch في البيئات التي لا تدعم Python.
تتضمن العملية تقنيتين: التتبع والبرمجة النصية. يسجل التتبع العمليات أثناء تنفيذ النموذج، بينما تسمح البرمجة النصية بتحديد النماذج باستخدام مجموعة فرعية من Python. تضمن هذه التقنيات أن النماذج مثل YOLO11 لا تزال قادرة على إظهار سحرها حتى خارج بيئة Python المعتادة.
يمكن أيضًا تحسين نماذج TorchScript من خلال تقنيات مثل دمج العمليات والتحسينات في استخدام الذاكرة، مما يضمن التنفيذ الفعال. ميزة أخرى للتصدير إلى TorchScript هي إمكانية تسريع تنفيذ النموذج عبر منصات الأجهزة المختلفة. فهو ينشئ تمثيلًا مستقلاً وجاهزًا للإنتاج لنموذج PyTorch الخاص بك والذي يمكن دمجه في بيئات C++ أو الأنظمة المدمجة أو نشره في تطبيقات الويب أو الهاتف المحمول.
الميزات الرئيسية لنماذج TorchScript
يوفر TorchScript، وهو جزء أساسي من نظام PyTorch البيئي، ميزات قوية لتحسين ونشر نماذج التعلم العميق.
فيما يلي الميزات الرئيسية التي تجعل TorchScript أداة قيّمة للمطورين:
-
تنفيذ الرسم البياني الثابت: يستخدم TorchScript تمثيل رسم بياني ثابت لحساب النموذج، وهو يختلف عن تنفيذ الرسم البياني الديناميكي لـ PyTorch. في تنفيذ الرسم البياني الثابت، يتم تحديد الرسم البياني الحسابي وتجميعه مرة واحدة قبل التنفيذ الفعلي، مما يؤدي إلى تحسين الأداء أثناء الاستدلال.
-
تسلسل النموذج: يتيح TorchScript تسلسل نماذج PyTorch إلى تنسيق مستقل عن النظام الأساسي. يمكن تحميل النماذج المتسلسلة دون الحاجة إلى كود python الأصلي، مما يتيح النشر في بيئات وقت تشغيل مختلفة.
-
تجميع JIT: يستخدم TorchScript التجميع في الوقت المناسب (JIT) لتحويل نماذج PyTorch إلى تمثيل وسيط مُحسَّن. يقوم JIT بتجميع الرسم البياني الحسابي للنموذج، مما يتيح التنفيذ الفعال على الأجهزة المستهدفة.
-
التكامل عبر اللغات: باستخدام TorchScript، يمكنك تصدير نماذج PyTorch إلى لغات أخرى مثل C++ و Java و JavaScript. هذا يجعل من السهل دمج نماذج PyTorch في أنظمة البرامج الحالية المكتوبة بلغات مختلفة.
-
التحويل التدريجي: يوفر TorchScript أسلوب تحويل تدريجي، مما يسمح لك بتحويل أجزاء من نموذج PyTorch الخاص بك إلى TorchScript بشكل تدريجي. هذه المرونة مفيدة بشكل خاص عند التعامل مع النماذج المعقدة أو عندما تريد تحسين أجزاء معينة من التعليمات البرمجية.
خيارات النشر في TorchScript
قبل أن ننظر إلى التعليمات البرمجية لتصدير نماذج YOLO11 إلى تنسيق TorchScript، دعنا نفهم أين تستخدم نماذج TorchScript عادةً.
يقدم TorchScript خيارات نشر متنوعة لنماذج التعلم الآلي، مثل:
-
C++ API: حالة الاستخدام الأكثر شيوعًا لـ TorchScript هي C++ API الخاص به، والذي يسمح لك بتحميل وتنفيذ نماذج TorchScript المحسّنة مباشرةً داخل تطبيقات C++. يعد هذا مثاليًا لبيئات الإنتاج حيث قد لا يكون python مناسبًا أو متاحًا. توفر C++ API حمولة منخفضة وتنفيذًا فعالًا لنماذج TorchScript، مما يزيد من إمكانات الأداء.
-
النشر على الأجهزة المحمولة: يوفر TorchScript أدوات لتحويل النماذج إلى تنسيقات قابلة للنشر بسهولة على الأجهزة المحمولة. يوفر PyTorch Mobile وقت تشغيل لتنفيذ هذه النماذج داخل تطبيقات iOS و Android. يتيح ذلك إمكانات استدلال بزمن انتقال منخفض ودون اتصال بالإنترنت، مما يعزز تجربة المستخدم و خصوصية البيانات.
-
النشر في السحابة: يمكن نشر نماذج TorchScript على الخوادم السحابية باستخدام حلول مثل TorchServe. يوفر ميزات مثل التحكم في إصدار النموذج، والتجميع، ومراقبة المقاييس للنشر القابل للتطوير في بيئات الإنتاج. يمكن أن يجعل النشر السحابي باستخدام TorchScript نماذجك في متناول الجميع عبر واجهات برمجة التطبيقات (APIs) أو خدمات الويب الأخرى.
تصدير إلى TorchScript: تحويل نموذج YOLO11 الخاص بك
تصدير نماذج YOLO11 إلى TorchScript يجعل استخدامها أسهل في أماكن مختلفة ويساعدها على العمل بشكل أسرع وأكثر كفاءة. هذا أمر رائع لأي شخص يتطلع إلى استخدام نماذج التعلم العميق بشكل أكثر فعالية في التطبيقات الواقعية.
التثبيت
لتثبيت الحزمة المطلوبة، قم بتشغيل:
التثبيت
# Install the required package for YOLO11
pip install ultralytics
للحصول على إرشادات مفصلة وأفضل الممارسات المتعلقة بعملية التثبيت، راجع دليل تثبيت Ultralytics. أثناء تثبيت الحزم المطلوبة لـ YOLO11، إذا واجهت أي صعوبات، فراجع دليل المشكلات الشائعة للحصول على الحلول والنصائح.
الاستخدام
تم تصميم جميع نماذج Ultralytics YOLO11 لدعم التصدير خارج الصندوق، مما يسهل دمجها في سير عمل النشر المفضل لديك. يمكنك عرض القائمة الكاملة لتنسيقات التصدير المدعومة وخيارات التكوين لاختيار أفضل إعداد لتطبيقك.
الاستخدام
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
وسائط التصدير
الوسيطة | النوع | افتراضي | الوصف |
---|---|---|---|
format |
str |
'torchscript' |
تنسيق الهدف للنموذج الذي تم تصديره، والذي يحدد التوافق مع بيئات النشر المختلفة. |
imgsz |
int أو tuple |
640 |
حجم الصورة المطلوب لإدخال النموذج. يمكن أن يكون عددًا صحيحًا للصور المربعة أو صفًا. (height, width) لأبعاد محددة. |
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 حول التصدير.
نشر نماذج YOLO11 TorchScript المصدرة
بعد تصدير نماذج Ultralytics YOLO11 بنجاح إلى تنسيق TorchScript، يمكنك الآن نشرها. الخطوة الأولى الأساسية والموصى بها لتشغيل نموذج TorchScript هي استخدام طريقة YOLO("model.torchscript")، كما هو موضح في مقتطف شفرة الاستخدام السابق. ومع ذلك، للحصول على إرشادات متعمقة حول نشر نماذج TorchScript الخاصة بك في إعدادات أخرى متنوعة، ألق نظرة على الموارد التالية:
-
استكشاف النشر على الأجهزة المحمولة: توفر وثائق PyTorch Mobile إرشادات شاملة لنشر النماذج على الأجهزة المحمولة، مما يضمن أن تطبيقاتك فعالة وسريعة الاستجابة.
-
إتقان النشر من جانب الخادم: تعرف على كيفية نشر النماذج من جانب الخادم باستخدام TorchServe، مما يوفر برنامجًا تعليميًا خطوة بخطوة لتقديم النماذج بكفاءة وقابلية للتطوير.
-
تنفيذ نشر C++: تعمق في البرنامج التعليمي حول تحميل نموذج TorchScript في C++، مما يسهل دمج نماذج TorchScript الخاصة بك في تطبيقات C++ لتحسين الأداء وتعدد الاستخدامات.
ملخص
في هذا الدليل، استكشفنا عملية تصدير نماذج Ultralytics YOLO11 إلى تنسيق TorchScript. باتباع الإرشادات المقدمة، يمكنك تحسين نماذج YOLO11 لتحقيق الأداء الأمثل واكتساب المرونة لنشرها عبر مختلف الأنظمة الأساسية والبيئات.
لمزيد من التفاصيل حول الاستخدام، تفضل بزيارة وثائق TorchScript الرسمية.
أيضًا، إذا كنت ترغب في معرفة المزيد حول تكاملات Ultralytics YOLO11 الأخرى، فقم بزيارة صفحة دليل التكامل الخاصة بنا. ستجد الكثير من الموارد والأفكار المفيدة هناك.
الأسئلة الشائعة
ما هو تصدير نموذج Ultralytics YOLO11 إلى TorchScript؟
يتيح تصدير نموذج Ultralytics YOLO11 إلى TorchScript نشرًا مرنًا عبر الأنظمة الأساسية. يسهل TorchScript، وهو جزء من نظام PyTorch البيئي، تسلسل النماذج، والتي يمكن بعد ذلك تنفيذها في البيئات التي تفتقر إلى دعم Python. وهذا يجعله مثاليًا لنشر النماذج على الأنظمة المدمجة وبيئات C++ وتطبيقات الهاتف المحمول وحتى متصفحات الويب. يتيح التصدير إلى TorchScript أداءً فعالاً وتطبيقًا أوسع لنماذج YOLO11 الخاصة بك عبر منصات متنوعة.
كيف يمكنني تصدير نموذج YOLO11 الخاص بي إلى TorchScript باستخدام Ultralytics؟
لتصدير نموذج YOLO11 إلى TorchScript، يمكنك استخدام نموذج التعليمات البرمجية التالي:
الاستخدام
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
لمزيد من التفاصيل حول عملية التصدير، راجع وثائق Ultralytics حول التصدير.
لماذا يجب عليّ استخدام TorchScript لنشر نماذج YOLO11؟
يوفر استخدام TorchScript لنشر نماذج YOLO11 العديد من المزايا:
- إمكانية النقل: يمكن تشغيل النماذج المصدرة في بيئات دون الحاجة إلى Python، مثل تطبيقات C++ أو الأنظمة المدمجة أو الأجهزة المحمولة.
- Optimization: يدعم TorchScript تنفيذ الرسم البياني الثابت وتجميع Just-In-Time (JIT)، مما يمكنه تحسين أداء النموذج.
- التكامل عبر اللغات: يمكن دمج نماذج TorchScript في لغات برمجة أخرى، مما يعزز المرونة وقابلية التوسع.
- التسلسل: يمكن تسلسل النماذج، مما يسمح بتحميلها والاستدلال عليها بشكل مستقل عن النظام الأساسي.
لمزيد من الرؤى حول النشر، قم بزيارة وثائق PyTorch Mobile، و وثائق TorchServe، و دليل النشر بـ C++.
ما هي خطوات التثبيت لتصدير نماذج YOLO11 إلى TorchScript؟
لتثبيت الحزمة المطلوبة لتصدير نماذج YOLO11، استخدم الأمر التالي:
التثبيت
# Install the required package for YOLO11
pip install ultralytics
للحصول على إرشادات مفصلة، تفضل بزيارة دليل تثبيت Ultralytics. إذا ظهرت أي مشكلات أثناء التثبيت، فراجع دليل المشكلات الشائعة.
كيف يمكنني نشر نماذج TorchScript YOLO11 التي تم تصديرها؟
بعد تصدير نماذج YOLO11 إلى تنسيق TorchScript، يمكنك نشرها عبر مجموعة متنوعة من الأنظمة الأساسية:
- C++ API: مثالي لبيئات الإنتاج منخفضة الحمل وذات الكفاءة العالية.
- النشر على الأجهزة المحمولة: استخدم PyTorch Mobile لتطبيقات iOS و Android.
- النشر في السحابة: استخدم خدمات مثل TorchServe للنشر القابل للتطوير من جانب الخادم.
استكشف إرشادات شاملة لنشر النماذج في هذه الإعدادات للاستفادة الكاملة من قدرات TorchScript.