قياس أداء النموذج باستخدام Ultralytics YOLO
تصور قياس الأداء
قد تحتاج إلى تحديث الصفحة لعرض الرسوم البيانية بشكل صحيح بسبب مشاكل محتملة في ملفات تعريف الارتباط.
مقدمة
بمجرد تدريب نموذجك والتحقق من صحته، تكون الخطوة المنطقية التالية هي تقييم أدائه في سيناريوهات العالم الحقيقي المختلفة. يعمل وضع القياس (Benchmark mode) في Ultralytics YOLO26 على تحقيق هذا الغرض من خلال توفير إطار عمل قوي لتقييم سرعة ودقة accuracy نموذجك عبر مجموعة من تنسيقات التصدير.
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
لماذا يعتبر قياس الأداء أمراً بالغ الأهمية؟
- اتخاذ قرارات مستنيرة: احصل على رؤى حول المقايضات بين السرعة والدقة.
- تخصيص الموارد: افهم كيفية أداء تنسيقات التصدير المختلفة على الأجهزة المختلفة.
- التحسين: تعرف على تنسيق التصدير الذي يوفر أفضل أداء لحالة الاستخدام الخاصة بك.
- كفاءة التكلفة: استفد بشكل أكثر كفاءة من موارد الأجهزة بناءً على نتائج القياس.
المقاييس الرئيسية في وضع القياس
- mAP50-95: لمهام object detection (اكتشاف الكائنات)، والتجزئة، وتقدير الوضع.
- accuracy_top5: لمهام image classification (تصنيف الصور).
- زمن الاستدلال (Inference Time): الوقت المستغرق لكل صورة بالملي ثانية.
تنسيقات التصدير المدعومة
- ONNX: للحصول على أفضل أداء لوحدة المعالجة المركزية (CPU)
- TensorRT: لأقصى قدر من كفاءة وحدة معالجة الرسومات (GPU)
- OpenVINO: لتحسين أداء أجهزة Intel
- CoreML، TensorFlow SavedModel، والمزيد: لتلبية احتياجات النشر المتنوعة.
- قم بالتصدير إلى ONNX أو OpenVINO للحصول على تسريع يصل إلى 3 أضعاف على CPU.
- قم بالتصدير إلى TensorRT للحصول على تسريع يصل إلى 5 أضعاف على GPU.
أمثلة الاستخدام
قم بتثبيت Ultralytics مع تبعيات التصدير قبل إجراء القياس لتجنب فقدان الحزم.
pip install ultralytics[export]قم بتشغيل مقاييس أداء YOLO26n عبر جميع تنسيقات التصدير المدعومة (ONNX، TensorRT، إلخ). راجع قسم الوسائط (Arguments) أدناه للحصول على قائمة كاملة بخيارات التصدير.
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")الوسائط
توفر وسائط مثل model و data و imgsz و half و device و verbose و format للمستخدمين المرونة اللازمة لضبط مقاييس الأداء وفقاً لاحتياجاتهم الخاصة ومقارنة أداء تنسيقات التصدير المختلفة بسهولة.
| المفتاح | القيمة الافتراضية | الوصف |
|---|---|---|
model | None | يحدد المسار إلى ملف النموذج. يقبل كلاً من تنسيقات .pt و .yaml، على سبيل المثال، "yolo26n.pt" للنماذج المدربة مسبقاً أو ملفات التكوين. |
data | None | المسار إلى ملف YAML يحدد مجموعة بيانات القياس، وعادةً ما يتضمن مسارات وإعدادات validation data (بيانات التحقق). مثال: "coco8.yaml". |
imgsz | 640 | حجم صورة الإدخال للنموذج. يمكن أن يكون عدداً صحيحاً واحداً للصور المربعة أو صفاً (width, height) للصور غير المربعة، على سبيل المثال، (640, 480). |
half | False | يُمكّن الاستدلال بـ FP16 (الدقة النصفية)، مما يقلل من استخدام الذاكرة وربما يزيد السرعة على الأجهزة المتوافقة. استخدم half=True للتمكين. |
int8 | False | يُنشط تكميم INT8 (INT8 quantization) لتحسين الأداء بشكل أكبر على الأجهزة المدعومة، وهو مفيد بشكل خاص لأجهزة الحافة. اضبط int8=True للاستخدام. |
device | None | يحدد جهاز (أجهزة) الحوسبة للقياس، مثل "cpu" أو "cuda:0". |
verbose | False | يتحكم في مستوى التفاصيل في مخرجات السجل. اضبط verbose=True للحصول على سجلات مفصلة. |
format | '' | يقيس أداء تنسيق التصدير المحدد فقط (على سبيل المثال، format=onnx). اتركه فارغاً لاختبار كل تنسيق مدعوم تلقائياً. |
تنسيقات التصدير
ستحاول مقاييس الأداء العمل تلقائياً على جميع تنسيقات التصدير الممكنة المدرجة أدناه. بدلاً من ذلك، يمكنك تشغيل المقاييس لتنسيق معين باستخدام الوسيط format، الذي يقبل أي تنسيق من المذكورة أدناه.
| التنسيق | وسيط format | النموذج | البيانات الوصفية | الوسائط |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
راجع تفاصيل export الكاملة في صفحة Export.
الأسئلة الشائعة
كيف أقيس أداء نموذج YOLO26 الخاص بي باستخدام Ultralytics؟
يوفر Ultralytics YOLO26 وضع القياس (Benchmark mode) لتقييم أداء نموذجك عبر تنسيقات تصدير مختلفة. يوفر هذا الوضع رؤى حول مقاييس رئيسية مثل mean Average Precision (mAP50-95)، والدقة، وزمن الاستدلال بالملي ثانية. لتشغيل مقاييس الأداء، يمكنك استخدام أوامر Python أو CLI. على سبيل المثال، للقياس على GPU:
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)لمزيد من التفاصيل حول وسائط القياس، قم بزيارة قسم Arguments.
ما هي فوائد تصدير نماذج YOLO26 إلى تنسيقات مختلفة؟
يتيح لك تصدير نماذج YOLO26 إلى تنسيقات مختلفة مثل ONNX، و TensorRT، و OpenVINO تحسين الأداء بناءً على بيئة النشر الخاصة بك. على سبيل المثال:
- ONNX: يوفر تسريعاً يصل إلى 3 أضعاف على CPU.
- TensorRT: يوفر تسريعاً يصل إلى 5 أضعاف على GPU.
- OpenVINO: مُحسّن خصيصاً لأجهزة Intel.
تعمل هذه التنسيقات على تعزيز سرعة ودقة نماذجك، مما يجعلها أكثر كفاءة لمختلف تطبيقات العالم الحقيقي. تفضل بزيارة صفحة Export للحصول على التفاصيل الكاملة.
لماذا يعتبر قياس الأداء ضرورياً في تقييم نماذج YOLO26؟
يعد قياس أداء نماذج YOLO26 أمراً ضرورياً لعدة أسباب:
- اتخاذ قرارات مستنيرة: افهم المقايضات بين السرعة والدقة.
- تخصيص الموارد: قياس الأداء عبر خيارات الأجهزة المختلفة.
- التحسين: حدد تنسيق التصدير الذي يوفر أفضل أداء لحالات استخدام معينة.
- كفاءة التكلفة: تحسين استخدام الأجهزة بناءً على نتائج القياس.
تساعد المقاييس الرئيسية مثل mAP50-95، ودقة Top-5، وزمن الاستدلال في إجراء هذه التقييمات. ارجع إلى قسم Key Metrics لمزيد من المعلومات.
ما هي تنسيقات التصدير المدعومة بواسطة YOLO26، وما هي مزاياها؟
يدعم YOLO26 مجموعة متنوعة من تنسيقات التصدير، كل منها مصمم خصيصاً لأجهزة وحالات استخدام محددة:
- ONNX: الأفضل لأداء CPU.
- TensorRT: مثالي لكفاءة GPU.
- OpenVINO: مُحسّن لأجهزة Intel.
- CoreML و TensorFlow: مفيدان لنظام iOS وتطبيقات التعلم الآلي العامة.
للحصول على قائمة كاملة بالتنسيقات المدعومة ومزاياها، راجع قسم Supported Export Formats.
ما هي الوسائط التي يمكنني استخدامها لضبط مقاييس أداء YOLO26 الخاصة بي؟
عند تشغيل مقاييس الأداء، يمكن تخصيص العديد من الوسائط لتناسب الاحتياجات الخاصة:
- model: المسار إلى ملف النموذج (على سبيل المثال، "yolo26n.pt").
- data: المسار إلى ملف YAML يحدد مجموعة البيانات (على سبيل المثال، "coco8.yaml").
- imgsz: حجم صورة الإدخال، إما كعدد صحيح واحد أو كصف.
- half: تفعيل استدلال FP16 لأداء أفضل.
- int8: تفعيل تكميم INT8 لأجهزة الحافة.
- device: تحديد جهاز الحوسبة (على سبيل المثال، "cpu"، "cuda:0").
- verbose: التحكم في مستوى تفاصيل السجل.
للحصول على قائمة كاملة بالوسائط، راجع قسم Arguments.