🎯 C++ से Microsoft.Windows.AI को कॉल करने का तरीका【उदाहरण कोड के साथ】
Windows 10 और उसके बाद के संस्करणों में, Windows मानक रूप से एक रनटाइम के साथ आता है जो ONNX प्रारूप के AI मॉडल को निष्पादित कर सकता है । वह Windows ML (Windows.AI.MachineLearning) है।
इस लेख में, हम C++ (Win32 ऐप आधारित) से Microsoft.Windows.AI.MachineLearning को कॉल करने का तरीका, उदाहरण कोड के साथ विस्तार से समझाएंगे।
✅ तैयारी
◾ आवश्यक परिवेश
- Windows 10 (1809+) या Windows 11
- Visual Studio 2019 या नया (Community संस्करण भी ठीक है)
- C++/WinRT समर्थन (
Microsoft.Windows.CppWinRT) - Windows SDK 10.0.17763.0 या उच्चतर
✅ प्रोजेक्ट संरचना
Visual Studio में निम्नलिखित संरचना के साथ एक प्रोजेक्ट बनाएं।
प्रकार: C++ Windows डेस्कटॉप एप्लिकेशन (खाली प्रोजेक्ट)
सबसिस्टम: Windows (
WinMain)NuGet के माध्यम से निम्नलिखित पैकेज जोड़ें
1Microsoft.Windows.CppWinRT
✅ उदाहरण कोड
नीचे WinMain का उपयोग करके Win32 API और Windows.AI.MachineLearning को संयोजित करने वाला एक न्यूनतम उदाहरण दिया गया है।
※ उपयोग किया जाने वाला ONNX मॉडल
model.onnxहै, और इसे निष्पादन योग्य फ़ाइल (executable file) के समान फ़ोल्डर में रखा जाना चाहिए।
main.cpp
| |
✅ अतिरिक्त जानकारी: इनपुट और आउटपुट Tensor निर्दिष्ट करने का तरीका
कुछ मॉडलों के लिए, अनुमान (inference) से पहले Tensor का निर्माण और बाइंडिंग आवश्यक है।
उदाहरण:
| |
आउटपुट को भी इसी तरह result.Outputs().Lookup(L"output_0") का उपयोग करके प्राप्त किया जा सकता है।
✅ डिबगिंग के लिए ध्यान रखने योग्य बातें
- यदि मॉडल फ़ाइल निष्पादन फ़ोल्डर में मौजूद नहीं है, तो
FileNotFoundExceptionफेंका जाएगा। - यदि इनपुट/आउटपुट नाम मेल नहीं खाते हैं, तो
invalid_argumentत्रुटि होगी। - मॉडल के सटीक IO विनिर्देशों की जांच Netron जैसे उपकरणों से की जा सकती है।
✅ निष्कर्ष
| आइटम | विवरण |
|---|---|
| उपयोग किया गया API | Windows.AI.MachineLearning (WinRT) |
| भाषा | C++ (Win32 आधारित) |
| अनुशंसित विधि | C++/WinRT हेडर के माध्यम से |
| लाभ | ONNX मॉडल मूल रूप से (natively) चलते हैं, GPU समर्थन भी उपलब्ध है |
| ध्यान दें | मॉडल इनपुट नाम और Tensor आकार पर ध्यान दें |
✅ विकल्प: उन लोगों के लिए जो WinRT का उपयोग नहीं करना चाहते हैं
- Microsoft के
ONNX Runtimeका उपयोग करके, आप पूरी तरह से WinRT के बिना C++ से ONNX मॉडल को संभाल सकते हैं । - यह क्रॉस-प्लेटफ़ॉर्म समर्थित है, और Windows/Linux के लिए सामान्य कोड संभव है।
📌 निष्कर्ष
Windows ML (Microsoft.Windows.AI) एक शक्तिशाली AI अनुमान इंजन (inference engine) है जिसे C++ से मज़बूती से उपयोग किया जा सकता है। यदि आपको Windows पर नेटिव अनुमान की आवश्यकता है, तो कृपया इसे आज़माएँ।
जिन लोगों को ONNX मॉडल बनाने और Tensor बाइंडिंग के विशिष्ट उदाहरण चाहिए, हम भविष्य के लेख में उन्हें समझाने की योजना बना रहे हैं!
