Inference Python पैकेज
Inference Python पैकेज: मॉडल लोड करें, अपने स्वयं के प्रोसेस में inference चलाएँ, Workflows निष्पादित करें, और वीडियो स्ट्रीम करें।
यह इन्फरेंस Python पैकेज मुख्य ओपन-सोर्स लाइब्रेरी है जो Roboflow के कंप्यूटर विज़न डिप्लॉयमेंट स्टैक को संचालित करती है। यह मॉडल लोडिंग, प्री/पोस्ट-प्रोसेसिंग, GPU/CPU ऑप्टिमाइज़ेशन, और वर्कफ़्लोज़ निष्पादन प्रदान करता है, जिसे सीधे Python से कॉल किया जा सकता है।
यह Inference Server इस पैकेज को रैप करता है और इसे HTTP के माध्यम से उपलब्ध कराता है (सभी निर्भरताओं के इंस्टॉल होने के साथ Docker इमेज के रूप में वितरित), लेकिन आप इसका उपयोग भी कर सकते हैं इन्फरेंस सीधे अपनी स्क्रिप्ट्स और एप्लिकेशनों में।
ये हिस्से कैसे एक साथ काम करते हैं
Inference में कई घटक हैं जो कंप्यूटर विज़न मॉडल सर्व करने के लिए साथ मिलकर काम करते हैं:
इन्फरेंस - मॉडल लोडिंग, inference, और Workflows निष्पादन के लिए मुख्य Python पैकेज।
इन्फरेंस-sdk - HTTP के माध्यम से Inference Server से संचार करने के लिए हल्का Python क्लाइंट।
इन्फरेंस-cli - Inference Server को प्रबंधित करने और सामान्य कार्य चलाने के लिए कमांड-लाइन टूल।
Inference Server - HTTP सर्वर (Docker) जो रैप करता है
इन्फरेंसपैकेज को एक REST API के रूप में।
रनटाइम पर ये हिस्से कैसे व्यवहार करते हैं (request routing, parallelization, microservice और appliance patterns), इसके लिए देखें इन्फरेंस आर्किटेक्चर.
मल्टी-बैकएंड समर्थन
Inference 1.0 कई inference runtime backends का समर्थन करता है: ONNX, TensorRT, Hugging Face, और PyTorch. यह आपके हार्डवेयर के लिए स्वतः सबसे तेज़ उपलब्ध backend चुनता है। उदाहरण के लिए, यदि आपके पास NVIDIA GPU है या आप Jetson डिवाइस पर चल रहे हैं और आपके प्लेटफ़ॉर्म पर मॉडल के लिए TensorRT engine उपलब्ध है, तो Inference डिफ़ॉल्ट रूप से TensorRT का उपयोग करता है।
इंस्टॉलेशन
हम सलाह देते हैं कि आप Python virtual environment (venv) का उपयोग करें ताकि Inference की dependencies को अलग रखा जा सके।
pip के माध्यम से Inference इंस्टॉल करने के लिए:
यदि आपके पास NVIDIA GPU है, तो आप अपने inference को इस तरह तेज़ कर सकते हैं:
त्वरित उदाहरण
आप inference को HTTP के माध्यम से Inference Server के विरुद्ध चला सकते हैं (के साथ इन्फरेंस-sdk) या सीधे अपने प्रोसेस में (मूल इन्फरेंस पैकेज के साथ)। मूल get_model() call मॉडल को आपकी स्क्रिप्ट में लोड करता है और एक ऑब्जेक्ट लौटाता है जिसे आप कॉल कर सकते हैं .infer() उस पर; HTTP क्लाइंट छवि को एक सर्वर पर भेजता है जो वही काम करता है।
API key की आवश्यकता वाले मॉडल का उपयोग करने के लिए, सेट करें ROBOFLOW_API_KEY environment variable, या इसे सीधे पास करें:
देखें मूल Python API विज़ुअलाइज़ेशन सहित अधिक विस्तृत walkthrough के लिए पेज, और मॉडल चलाएँ server-आधारित पथ के लिए।
Inference Pipeline
InferencePipeline वीडियो को उसी Python process के भीतर चलाता है जैसे इन्फरेंस पैकेज। इसका उपयोग केवल तब करें जब आप direct Inference Library execution चुनते हैं और उसकी custom logic या sink interfaces तक पहुँच चाहिए। जो Applications Inference Server या Serverless का उपयोग करती हैं, उन्हें उपयोग करना चाहिए WebRTC Streaming.
ऊपर का कोड object detection annotation सीधे करता है (के माध्यम से render_boxes sink)। अधिक जानकारी के लिए, देखें Inference Pipeline पेज।
योगदान
Inference ओपन सोर्स है। source code, issue tracker, और contribution guide निम्न में उपलब्ध हैं roboflow/inference repository; देखें CONTRIBUTING.md शुरू करने के लिए।
अगले चरण
मूल Python API - मॉडल लोड करें और अपने प्रोसेस में inference चलाएँ।
Inference Pipeline - वीडियो स्ट्रीम्स पर मॉडल चलाएँ।
Model Weights Download - weight caching और persistent storage।
बेंचमार्क - सामान्य हार्डवेयर पर मापा गया throughput।
अंतिम अपडेट
क्या यह उपयोगी था?