Yolo فيجن شنتشن
شنتشن
انضم الآن
مسرد المصطلحات

ONNX (التبادل المفتوح للشبكات العصبية)

اكتشف كيف يعزز ONNX إمكانية نقل نماذج الذكاء الاصطناعي وقابلية التشغيل البيني مما يتيح النشر السلس لنماذج Ultralytics YOLO عبر منصات متنوعة.

تبادل الشبكات العصبية المفتوحةONNX) هو معيار مفتوح المصدر مصمم لتمثيل نماذج التعلم الآلي (ML) بطريقة تضمن قابلية النقل عبر أطر العمل والأجهزة المختلفة. تم تطويره في الأصل من قبل شركات مثل Microsoft و فيسبوك، ويعمل ONNX بمثابة "مترجم عالمي" للذكاء الاصطناعي. يسمح للمطورين بتدريب نموذج في نظام بيئي واحد، مثل PyTorchونشره بسلاسة في نظام آخر، مثل TensorFlow أو محرك متخصص. هذا التشغيل البيني يلغي الحاجة إلى إعادة بناء أو إعادة تدريب الشبكات عند الانتقال من بيئات البحث إلى تطبيقات الإنتاج, مما يبسط بشكل كبير نشر النموذج بشكل كبير.

كيفية عمل ONNX

في جوهرها، تحدد ONNX مجموعة مشتركة من المشغلين - وهي اللبنات الأساسية لنماذج التعلم العميق (DL) ونماذج التعلم الآلي - و وتنسيق ملف قياسي. عندما يتم تحويل النموذج إلى ONNX يتم تعيين بنيته الحسابية إلى رسم بياني حسابي ثابت. في هذا الرسم البياني، تمثل العقد العمليات الحسابية (مثل عمليات الالتفاف أو دوال التنشيط)، وتمثل الحواف تدفق موتر البيانات بينها.

نظرًا لأن تمثيل هذا الرسم البياني موحد، يمكن لمصنعي الأجهزة بناء موفري تنفيذ محسنين ل ONNX. وهذا يعني وجود .onnx ملف يمكن تسريعه على أجهزة متنوعة، بما في ذلك CPU, وحدة معالجة الرسومات (GPU )أو متخصص وحدة معالجةTensor TPU )، في كثير من الأحيان باستخدام نظام وقت تشغيل ONNX.

تصدير النماذج إلى ONNX

بالنسبة لمستخدمي ultralytics فإن تحويل نموذج مُدرَّب إلى تنسيق ONNX هو عملية مباشرة مباشرة. تتعامل المكتبة مع التحويل المعقد للطبقات إلى معيار ONNX تلقائيًا. يوضح الكود التالي التالي يوضح كيفية تصدير نموذج YOLO11 النموذج، وإعداده لنشره على نطاق أوسع.

from ultralytics import YOLO

# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
# This creates 'yolo11n.onnx' in the current directory
model.export(format="onnx")

تطبيقات واقعية

إن مرونة ONNX تجعل منه مكونًا حاسمًا في البنية التحتية الحديثة للذكاء الاصطناعي، خاصةً في مهام الرؤية الحاسوبية (CV).

  1. النشر عبر المنصات المتنقلة: قد يقوم المطور بتدريب نموذج نموذج الكشف عن الكائنات باستخدام PyTorch على محطة عمل قوية. ومع ذلك، يجب تشغيل التطبيق النهائي على كل من أجهزة iOS و Android . من خلال تصدير نموذج النموذج إلى ONNX يمكن للمطوّر دمج ملف النموذج نفسه في تطبيقات الأجهزة المحمولة باستخدام وقت تشغيلONNX للجوال، مما يضمن سلوكًا متسقًا عبر أنظمة تشغيل مختلفة دون الاحتفاظ بقواعد برمجية منفصلة.
  2. التكامل مع الأنظمة القديمة: يتم إنشاء العديد من التطبيقات الصناعية باستخدام لغات مثل C++ أو C# من أجل الأداء والاستقرار. في حين أن Python هي المعيار القياسي للتدريب، فإن دمج نموذج Python في في بيئة إنتاج C++C يمكن أن يكون بطيئًا وعرضة للأخطاء. تعمل ONNX على سد هذه الفجوة. منشأة تصنيع تستخدم الرؤية الحاسوبية في الروبوتات تدريب نموذج بلغة Python وتصديره إلى ONNX ثم تحميله مباشرةً إلى برنامج التحكم C++ الخاص بهم من أجل للاستدلال عالي السرعة في الوقت الحقيقي في المصنع في المصنع.

ONNX مقابل المفاهيم ذات الصلة

يساعد فهم كيفية تفاعل ONNX مع الأدوات الأخرى في اختيار استراتيجية النشر الصحيحة.

انضم إلى مجتمع Ultralytics

انضم إلى مستقبل الذكاء الاصطناعي. تواصل وتعاون وانمو مع المبتكرين العالميين

انضم الآن