C++ पर मशीन लर्निंग: प्रमुख लाइब्रेरीज़ का अवलोकन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++ पर मशीन लर्निंग: प्रमुख लाइब्रेरीज़ का अवलोकन



हालाँकि Python मशीन लर्निंग (ML) में अनुसंधान और तीव्र प्रोटोटाइपिंग के लिए डी-फैक्टो मानक बन गया है, C++ उत्पादन-प्रणालियों के लिए एक अपरिहार्य भाषा बना हुआ है जहाँ प्रदर्शन, कम मेमोरी खपत और रीयल-टाइम में काम करना महत्वपूर्ण है। C++ हार्डवेयर से अधिकतम लाभ उठाने की अनुमति देता है, जो विशेष रूप से मोबाइल उपकरणों, एम्बेडेड सिस्टम या उच्च-लोड सर्वरों पर मॉडल तैनात करते समय महत्वपूर्ण है।



इस लेख में, हम C++ के लिए पाँच प्रमुख मशीन लर्निंग लाइब्रेरीज़, उनकी ताकत, विशिष्ट उपयोग के मामलों की समीक्षा करेंगे और व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे। आप जानेंगे कि वर्गीकरण, प्रतिगमन, क्लस्टरिंग, न्यूरल नेटवर्क के साथ काम करने या सिग्नल प्रोसेसिंग के लिए कौन सी लाइब्रेरी चुननी चाहिए।



1. TensorFlow C++ API — डीप लर्निंग की शक्ति



TensorFlow डीप लर्निंग के लिए सबसे लोकप्रिय फ्रेमवर्क में से एक है। इसका C++ API पूर्व-प्रशिक्षित मॉडल (उदाहरण के लिए, Python से) लोड करने और अधिकतम गति से इन्फ्रेंस करने की अनुमति देता है। यह एम्बेडेड सिस्टम (Raspberry Pi, Jetson Nano, Android) और उत्पादन सर्वरों के लिए एक आदर्श विकल्प है।



मुख्य क्षमताएँ:

  • सहेजे गए गणना ग्राफ़ (SavedModel, Frozen Graph) के साथ काम करना।
  • CUDA और cuDNN के माध्यम से GPU समर्थन।
  • विशिष्ट डिवाइस के लिए मॉडल अनुकूलन (XLA, Quantization)।


मॉडल लोड करने और चलाने का उदाहरण (इन्फ्रेंस):

#include <tensorflow/core/public/session.h>#include <tensorflow/core/platform/env.h>

using namespace tensorflow;

int main() { // एक सत्र बनाएँ Session* session; NewSession(SessionOptions(), &session);

// फ़ाइल से ग्राफ़ लोड करें GraphDef graph_def; Status status = ReadBinaryProto(Env::Default(), "model.pb", &graph_def); if (!status.ok()) { /* त्रुटि प्रबंधन */ }

// सत्र में ग्राफ़ जोड़ें session->Create(graph_def);

// इनपुट डेटा (टेंसर) तैयार करें Tensor input_tensor(DT_FLOAT, TensorShape({1, 224, 224, 3})); auto input_map = input_tensor.tensor<float, 4>(); // ... टेंसर को डेटा से भरें ...

// इन्फ्रेंस निष्पादित करें std::vector<Tensor> outputs; session->Run({{"input_tensor", input_tensor}}, {"output_tensor"}, {}, &outputs);

// परिणाम का उपयोग करें auto result = outputs[0].tensor<float, 2>(); std::cout << "Prediction: " << result(0, 0) << std::endl;

session->Close(); return 0;}


2. Dlib — ML और कंप्यूटर विज़न के लिए बहुमुखी उपकरण



Dlib एक सामान्य प्रयोजन लाइब्रेरी है जिसमें शास्त्रीय मशीन लर्निंग एल्गोरिदम (SVM, निर्णय वृक्ष, K-means) और आधुनिक गहरे तंत्रिका नेटवर्क दोनों शामिल हैं। यह कंप्यूटर विज़न कार्यों में विशेष रूप से मजबूत है: चेहरे का पता लगाना, ऑब्जेक्ट ट्रैकिंग, चेहरे की पहचान (FaceNet)।



प्रमुख विशेषताएँ:

  • सरल एकीकरण: अधिकांश कार्यों के लिए हेडर-ओनली।
  • अंतर्निहित मल्टीथ्रेडिंग समर्थन (thread_pool)।
  • छवि प्रसंस्करण और मैट्रिक्स संचालन के लिए तैयार उपयोगिताएँ।


SVM क्लासिफायर प्रशिक्षण का उदाहरण:

#include <dlib/svm.h>#include <dlib/rand.h>

using namespace dlib;

int main() { // कर्नेल प्रकार: रेडियल बेसिस फंक्शन (RBF) typedef radial_basis_kernel<sample_type> kernel_type;

// क्लासिफायर और ट्रेनर बनाएँ svm_c_trainer<kernel_type> trainer; trainer.set_kernel(kernel_type(0.1));

// प्रशिक्षण डेटा std::vector<sample_type> samples; std::vector<double> labels; // ... samples और labels भरें ...

// प्रशिक्षण decision_function<kernel_type> df = trainer.train(samples, labels);

// नए नमूने का परीक्षण करें

अनुशंसाएँ