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

ONNX के लिए निर्यात करें YOLOv8 मॉडल

Often, when deploying computer vision models, you'll need a model format that's both flexible and compatible with multiple platforms.

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

ONNX और ONNX रनटाइम

ONNX, जो ओपन न्यूरल नेटवर्क एक्सचेंज के लिए खड़ा है, एक सामुदायिक परियोजना है जिसे फेसबुक और माइक्रोसॉफ्ट ने शुरू में विकसित किया था। का चल रहा विकास ONNX IBM, Amazon (AWS के माध्यम से) और Google जैसे विभिन्न संगठनों द्वारा समर्थित एक सहयोगी प्रयास है। परियोजना का उद्देश्य मशीन लर्निंग मॉडल का प्रतिनिधित्व करने के लिए डिज़ाइन किया गया एक खुला फ़ाइल प्रारूप बनाना है जो उन्हें विभिन्न एआई ढांचे और हार्डवेयर में उपयोग करने की अनुमति देता है।

ONNX मॉडल का उपयोग विभिन्न रूपरेखाओं के बीच मूल रूप से संक्रमण के लिए किया जा सकता है। उदाहरण के लिए, एक गहन शिक्षण मॉडल में प्रशिक्षित PyTorch को निर्यात किया जा सकता है ONNX प्रारूप और फिर आसानी से आयात किया जाता है TensorFlow.

ONNX

विकल्पत ONNX मॉडल के साथ इस्तेमाल किया जा सकता है ONNX रनटाइम। ONNX रनटाइम मशीन लर्निंग मॉडल के लिए एक बहुमुखी क्रॉस-प्लेटफ़ॉर्म त्वरक है जो फ्रेमवर्क के साथ संगत है जैसे PyTorch, TensorFlow, TFLite, scikit-learn, आदि।

ONNX रनटाइम के निष्पादन का अनुकूलन करता है ONNX हार्डवेयर-विशिष्ट क्षमताओं का लाभ उठाकर मॉडल। यह अनुकूलन मॉडल को सीपीयू, जीपीयू और विशेष त्वरक सहित विभिन्न हार्डवेयर प्लेटफार्मों पर कुशलतापूर्वक और उच्च प्रदर्शन के साथ चलाने की अनुमति देता है।

ONNX के साथ ONNX रनटाइम

चाहे स्वतंत्र रूप से या के साथ मिलकर उपयोग किया जाए ONNX रनटाइम ONNX मशीन लर्निंग मॉडल परिनियोजन और संगतता के लिए एक लचीला समाधान प्रदान करता है।

की मुख्य विशेषताएं ONNX मॉडल

की क्षमता ONNX विभिन्न स्वरूपों को संभालने के लिए निम्नलिखित प्रमुख विशेषताओं को जिम्मेदार ठहराया जा सकता है:

  • सामान्य मॉडल प्रतिनिधित्व: ONNX ऑपरेटरों के एक सामान्य सेट (जैसे convolutions, परतें, आदि) और एक मानक डेटा प्रारूप को परिभाषित करता है। जब एक मॉडल को परिवर्तित किया जाता है ONNX प्रारूप, इसकी वास्तुकला और वजन इस सामान्य प्रतिनिधित्व में अनुवादित हैं। यह एकरूपता सुनिश्चित करती है कि मॉडल को किसी भी ढांचे द्वारा समझा जा सकता है जो समर्थन करता है ONNX.

  • वर्जनिंग और बैकवर्ड संगतता: ONNX अपने ऑपरेटरों के लिए एक संस्करण प्रणाली बनाए रखता है। यह सुनिश्चित करता है कि मानक विकसित होने के बावजूद, पुराने संस्करणों में बनाए गए मॉडल प्रयोग करने योग्य रहें। पिछड़ी संगतता एक महत्वपूर्ण विशेषता है जो मॉडल को जल्दी से अप्रचलित होने से रोकती है।

  • ग्राफ-आधारित मॉडल प्रतिनिधित्व: ONNX कम्प्यूटेशनल ग्राफ़ के रूप में मॉडल का प्रतिनिधित्व करता है। यह ग्राफ-आधारित संरचना मशीन लर्निंग मॉडल का प्रतिनिधित्व करने का एक सार्वभौमिक तरीका है, जहां नोड्स संचालन या गणना का प्रतिनिधित्व करते हैं, और किनारे उनके बीच बहने वाले टेंसर का प्रतिनिधित्व करते हैं। यह प्रारूप विभिन्न रूपरेखाओं के लिए आसानी से अनुकूल है जो रेखांकन के रूप में मॉडल का भी प्रतिनिधित्व करते हैं।

  • उपकरण और पारिस्थितिकी तंत्र: चारों ओर उपकरणों का एक समृद्ध पारिस्थितिकी तंत्र है ONNX जो मॉडल रूपांतरण, विज़ुअलाइज़ेशन और अनुकूलन में सहायता करते हैं। ये उपकरण डेवलपर्स के साथ काम करना आसान बनाते हैं ONNX मॉडल और विभिन्न ढांचे के बीच मॉडल को मूल रूप से परिवर्तित करने के लिए।

का सामान्य उपयोग ONNX

Before we jump into how to export YOLOv8 models to the ONNX format, let's take a look at where ONNX models are usually used.

CPU परिनियोजन

ONNX मॉडल अक्सर सीपीयू पर उनकी संगतता के कारण तैनात किए जाते हैं ONNX रनटाइम। यह रनटाइम CPU निष्पादन के लिए ऑप्टिमाइज़ किया गया है। यह अनुमान की गति में काफी सुधार करता है और वास्तविक समय के सीपीयू परिनियोजन को संभव बनाता है।

समर्थित परिनियोजन विकल्प

जब ONNX मॉडल आमतौर पर सीपीयू पर उपयोग किए जाते हैं, उन्हें निम्नलिखित प्लेटफार्मों पर भी तैनात किया जा सकता है:

  • GPU त्वरण: ONNX पूरी तरह से GPU त्वरण, विशेष रूप से NVIDIA CUDA का समर्थन करता है। यह उच्च कम्प्यूटेशनल शक्ति की मांग करने वाले कार्यों के लिए NVIDIA GPU पर कुशल निष्पादन को सक्षम बनाता है।

  • एज और मोबाइल डिवाइस: ONNX किनारे और मोबाइल उपकरणों तक फैला हुआ है, ऑन-डिवाइस और रीयल-टाइम अनुमान परिदृश्यों के लिए एकदम सही है। यह हल्का है और एज हार्डवेयर के साथ संगत है।

  • वेब ब्राउज़र: ONNX सीधे वेब ब्राउज़र में चल सकते हैं, इंटरैक्टिव और गतिशील वेब-आधारित एआई अनुप्रयोगों को शक्ति प्रदान कर सकते हैं।

निर्यात YOLOv8 करने के लिए मॉडल ONNX

आप कनवर्ट करके मॉडल संगतता और परिनियोजन लचीलेपन का विस्तार कर सकते हैं YOLOv8 करने के लिए मॉडल ONNX प्रारूप।

संस्थापन

आवश्यक पैकेज स्थापित करने के लिए, चलाएं:

संस्थापन

# Install the required package for YOLOv8
pip install ultralytics

स्थापना प्रक्रिया से संबंधित विस्तृत निर्देशों और सर्वोत्तम प्रथाओं के लिए, हमारी जाँच करें YOLOv8 इंस्टालेशन गाइड। के लिए आवश्यक पैकेज स्थापित करते समय YOLOv8, अगर आपको कोई कठिनाई आती है, तो समाधान और सुझावों के लिए हमारी सामान्य समस्याएं मार्गदर्शिका देखें.

उपयोग

उपयोग निर्देशों में गोता लगाने से पहले, की सीमा की जांच करना सुनिश्चित करें YOLOv8 द्वारा पेश किए गए मॉडल Ultralytics. इससे आपको अपनी परियोजना आवश्यकताओं के लिए सबसे उपयुक्त मॉडल चुनने में मदद मिलेगी।

उपयोग

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolov8n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolov8n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to ONNX format
yolo export model=yolov8n.pt format=onnx  # creates 'yolov8n.onnx'

# Run inference with the exported model
yolo predict model=yolov8n.onnx source='https://ultralytics.com/images/bus.jpg'

निर्यात प्रक्रिया के बारे में अधिक जानकारी के लिए, पर जाएँ Ultralytics निर्यात पर प्रलेखन पृष्ठ

निर्यात की गई तैनाती YOLOv8 ONNX मॉडल

एक बार जब आप सफलतापूर्वक अपना निर्यात कर लेते हैं Ultralytics YOLOv8 करने के लिए मॉडल ONNX प्रारूप, अगला कदम इन मॉडलों को विभिन्न वातावरणों में तैनात कर रहा है। तपाईंको परिनियोजित गर्ने विस्तृत निर्देशनहरूको लागि ONNX मॉडल, निम्नलिखित संसाधनों पर एक नज़र डालें:

  • ONNX रनटाइम Python एपीआई दस्तावेज़ीकरण: यह मार्गदर्शिका लोडिंग और चलाने के लिए आवश्यक जानकारी प्रदान करती है ONNX का उपयोग कर मॉडल ONNX रनटाइम।

  • एज डिवाइसेस पर तैनाती: परिनियोजन के विभिन्न उदाहरणों के लिए इस डॉक्स पेज को देखें ONNX किनारे पर मॉडल।

  • ONNX GitHub पर ट्यूटोरियल: व्यापक ट्यूटोरियल का एक संग्रह जो उपयोग और कार्यान्वयन के विभिन्न पहलुओं को कवर करता है ONNX विभिन्न परिदृश्यों में मॉडल।

सारांश

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

उपयोग के बारे में अधिक जानकारी के लिए, पर जाएँ ONNX आधिकारिक दस्तावेज।

Also, if you'd like to know more about other Ultralytics YOLOv8 integrations, visit our integration guide page. You'll find plenty of useful resources and insights there.



Created 2024-01-25, Updated 2024-06-10
Authors: glenn-jocher (5), abirami-vina (1)

टिप्पणियाँ