सामग्री पर जाएं

मॉडल बेंचमार्किंग के साथ Ultralytics YOLO

Ultralytics YOLO पारिस्थितिकी तंत्र और एकीकरण

परिचय

एक बार जब आपका मॉडल प्रशिक्षित और मान्य हो जाता है, तो अगला तार्किक कदम विभिन्न वास्तविक दुनिया परिदृश्यों में इसके प्रदर्शन का मूल्यांकन करना है। बेंचमार्क मोड में Ultralytics YOLOv8 निर्यात प्रारूपों की एक श्रृंखला में आपके मॉडल की गति और सटीकता का आकलन करने के लिए एक मजबूत ढांचा प्रदान करके इस उद्देश्य को पूरा करता है।



सतर्कता: Ultralytics मोड ट्यूटोरियल: बेंचमार्क

बेंचमार्किंग क्यों महत्वपूर्ण है?

  • सूचित निर्णय: गति और सटीकता के बीच व्यापार-नापसंद में अंतर्दृष्टि प्राप्त करें।
  • संसाधन आवंटन: समझें कि विभिन्न निर्यात प्रारूप विभिन्न हार्डवेयर पर कैसा प्रदर्शन करते हैं।
  • अनुकूलन: जानें कि कौन सा निर्यात प्रारूप आपके विशिष्ट उपयोग के मामले के लिए सर्वश्रेष्ठ प्रदर्शन प्रदान करता है।
  • लागत क्षमता: बेंचमार्क परिणामों के आधार पर हार्डवेयर संसाधनों का अधिक कुशल उपयोग करें।

बेंचमार्क मोड में प्रमुख मीट्रिक

  • एमएपी 50-95: वस्तु का पता लगाने, विभाजन और मुद्रा अनुमान के लिए।
  • accuracy_top5: छवि वर्गीकरण के लिए।
  • अनुमान समय: मिलीसेकंड में प्रत्येक छवि के लिए लिया गया समय।

समर्थित निर्यात प्रारूप

  • ONNX: इष्टतम के लिए CPU प्रदर्शन
  • TensorRT: अधिकतम के लिए GPU दक्षता
  • OpenVINO: के लिए Intel हार्डवेयर अनुकूलन
  • CoreML, TensorFlow SavedModel, और अधिक: विविध परिनियोजन आवश्यकताओं के लिए।

नोक

  • को निर्यात करें ONNX नहीं तो OpenVINO 3x तक के लिए CPU स्पीडअप।
  • को निर्यात करें TensorRT 5x तक के लिए GPU स्पीडअप।

उपयोग के उदाहरण

चलाना YOLOv8n सहित सभी समर्थित निर्यात प्रारूपों पर बेंचमार्क ONNX, TensorRT आदि। निर्यात तर्कों की पूरी सूची के लिए नीचे तर्क अनुभाग देखें।

उदाहरण

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

तर्क

तर्क जैसे model, data, imgsz, half, deviceऔर verbose उपयोगकर्ताओं को उनकी विशिष्ट आवश्यकताओं के लिए बेंचमार्क को ठीक करने और आसानी से विभिन्न निर्यात प्रारूपों के प्रदर्शन की तुलना करने के लिए लचीलापन प्रदान करें।

अत्‍यंत महत्वपूर्ण डिफ़ॉल्ट मान या क़िस्‍म
model None मॉडल फ़ाइल का पथ निर्दिष्ट करता है। दोनों को स्वीकार करता है .pt और .yaml प्रारूप, जैसे, "yolov8n.pt" पूर्व-प्रशिक्षित मॉडल या कॉन्फ़िगरेशन फ़ाइलों के लिए।
data None बेंचमार्किंग के लिए डेटासेट को परिभाषित करने वाली YAML फ़ाइल का पथ, आमतौर पर सत्यापन डेटा के लिए पथ और सेटिंग्स सहित। उदाहरण: "coco8.yaml".
imgsz 640 मॉडल के लिए इनपुट छवि का आकार। वर्ग छवियों या एक टपल के लिए एकल पूर्णांक हो सकता है (width, height) गैर-वर्ग के लिए, जैसे, (640, 480).
half False FP16 (अर्ध-परिशुद्धता) अनुमान सक्षम करता है, स्मृति उपयोग को कम करता है और संगत हार्डवेयर पर संभवतः गति बढ़ाता है। प्रयोग half=True सक्षम करने के लिए।
int8 False समर्थित उपकरणों पर आगे अनुकूलित प्रदर्शन के लिए INT8 परिमाणीकरण को सक्रिय करता है, विशेष रूप से किनारे उपकरणों के लिए उपयोगी। अस्त हो int8=True का उपयोग करना।
device None बेंचमार्किंग के लिए गणना डिवाइस (उपकरणों) को परिभाषित करता है, जैसे "cpu", "cuda:0", या उपकरणों की एक सूची जैसे "cuda:0,1" बहु के लिए-GPU सेटअप।
verbose False लॉगिंग आउटपुट में विवरण के स्तर को नियंत्रित करता है। एक बूलियन मूल्य; अस्त हो verbose=True विस्तृत लॉग या थ्रेसहोल्डिंग त्रुटियों के लिए एक फ्लोट के लिए।

निर्यात प्रारूप

बेंचमार्क नीचे दिए गए सभी संभावित निर्यात प्रारूपों पर स्वचालित रूप से चलने का प्रयास करेंगे।

प्रारूप format युक्ति को गढ़ना मेटाडेटा तर्क
PyTorch - yolov8n.pt -
TorchScript torchscript yolov8n.torchscript imgsz, optimize, batch
ONNX onnx yolov8n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n.pb imgsz, batch
TF लाइट tflite yolov8n.tflite imgsz, half, int8, batch
TF किनारा TPU edgetpu yolov8n_edgetpu.tflite imgsz
TF।जे एस tfjs yolov8n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n_paddle_model/ imgsz, batch
NCNN ncnn yolov8n_ncnn_model/ imgsz, half, batch

पूरा देखें export में विवरण निर्यातित माल पृष्ठ।

अक्सर पूछे जाने वाले प्रश्न

मैं अपने बेंचमार्क को कैसे बेंचमार्क करूं YOLOv8 मॉडल का प्रदर्शन का उपयोग करना Ultralytics?

Ultralytics YOLOv8 विभिन्न निर्यात प्रारूपों में आपके मॉडल के प्रदर्शन का आकलन करने के लिए एक बेंचमार्क मोड प्रदान करता है। यह मोड प्रमुख मीट्रिक जैसे औसत परिशुद्धता (mAP50-95), सटीकता और मिलीसेकंड में अनुमान समय में अंतर्दृष्टि प्रदान करता है। बेंचमार्क चलाने के लिए, आप या तो उपयोग कर सकते हैं Python नहीं तो CLI आदेश। उदाहरण के लिए, एक पर बेंचमार्क करने के लिए GPU:

उदाहरण

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

बेंचमार्क तर्कों के बारे में अधिक विवरण के लिए, तर्क अनुभाग पर जाएँ.

निर्यात करने के क्या लाभ हैं YOLOv8 विभिन्न स्वरूपों के लिए मॉडल?

निर्यात YOLOv8 विभिन्न स्वरूपों के लिए मॉडल जैसे ONNX, TensorRTऔर OpenVINO आपको अपने परिनियोजन परिवेश के आधार पर प्रदर्शन को अनुकूलित करने की अनुमति देता है। उदाहरणार्थ:

  • ONNX: 3x तक प्रदान करता है CPU स्पीडअप।
  • TensorRT: 5x तक की पेशकश GPU स्पीडअप।
  • OpenVINO: के लिए विशेष रूप से अनुकूलित Intel हार्डवेयर। ये प्रारूप आपके मॉडलों की गति और सटीकता दोनों को बढ़ाते हैं, जिससे वे विभिन्न वास्तविक दुनिया के अनुप्रयोगों के लिए अधिक कुशल हो जाते हैं। पूरी जानकारी के लिए निर्यात पृष्ठ पर जाएं।

मूल्यांकन में बेंचमार्किंग क्यों महत्वपूर्ण है YOLOv8 मॉडल?

अपने बेंचमार्किंग YOLOv8 मॉडल कई कारणों से आवश्यक है:

  • सूचित निर्णय: गति और सटीकता के बीच व्यापार-नापसंद को समझें।
  • संसाधन आवंटन: विभिन्न हार्डवेयर विकल्पों में प्रदर्शन का आकलन करें।
  • अनुकूलन: निर्धारित करें कि कौन सा निर्यात प्रारूप विशिष्ट उपयोग के मामलों के लिए सर्वश्रेष्ठ प्रदर्शन प्रदान करता है।
  • लागत क्षमता: बेंचमार्क परिणामों के आधार पर हार्डवेयर उपयोग का अनुकूलन करें। mAP50-95, Top-5 सटीकता और अनुमान समय जैसे प्रमुख मीट्रिक इन मूल्यांकनों को करने में मदद करते हैं। अधिक जानकारी के लिए मुख्य मीट्रिक अनुभाग देखें.

कौन से निर्यात प्रारूप द्वारा समर्थित हैं YOLOv8, और उनके फायदे क्या हैं?

YOLOv8 विभिन्न प्रकार के निर्यात स्वरूपों का समर्थन करता है, प्रत्येक विशिष्ट हार्डवेयर और उपयोग के मामलों के लिए सिलवाया जाता है:

  • ONNX: के लिए सबसे अच्छा CPU प्रदर्शन।
  • TensorRT: के लिए आदर्श GPU दक्षता।
  • OpenVINO: के लिए अनुकूलित Intel हार्डवेयर।
  • CoreML & TensorFlow: के लिए उपयोगी iOS और सामान्य एमएल अनुप्रयोग। समर्थित स्वरूपों और उनके संबंधित लाभों की पूरी सूची के लिए, समर्थित निर्यात प्रारूप अनुभाग देखें।

मैं अपने तर्कों को ठीक करने के लिए किन तर्कों का उपयोग कर सकता हूं YOLOv8 मानक?

बेंचमार्क चलाते समय, विशिष्ट आवश्यकताओं के अनुरूप कई तर्कों को अनुकूलित किया जा सकता है:

  • को गढ़ना: मॉडल फ़ाइल के लिए पथ (जैसे, "yolov8n.pt")।
  • डाटा: डेटासेट को परिभाषित करने वाली YAML फ़ाइल का पथ (उदा., "coco8.yaml").
  • आईएमजीएसजेड: इनपुट छवि आकार, या तो एकल पूर्णांक या टपल के रूप में।
  • आधा: बेहतर प्रदर्शन के लिए FP16 अनुमान सक्षम करें।
  • int8: किनारे उपकरणों के लिए INT8 परिमाणीकरण सक्रिय करें।
  • उपकरण: गणना डिवाइस निर्दिष्ट करें (उदाहरण के लिए, "cpu", "cuda:0").
  • शब्दाडंबरपूर्ण: लॉगिंग विवरण के स्तर को नियंत्रित करें। तर्कों की पूरी सूची के लिए, तर्क अनुभाग देखें.


बनाया गया 2023-11-12, अपडेट किया गया 2024-07-04
लेखक: ग्लेन-जोचर (18), बुरहान-क्यू (3), रिजवान मुनव्वर (1), लाफिंग-क्यू (1), मैयानुमेरोस्की (1)

टिप्पणियाँ