माइक्रोकंट्रोलर्स के लिए TensorFlow लाइट

माइक्रोकंट्रोलर्स के लिए TensorFlow Lite को केवल कुछ किलोबाइट मेमोरी वाले माइक्रोकंट्रोलर्स और अन्य उपकरणों पर मशीन लर्निंग मॉडल चलाने के लिए डिज़ाइन किया गया है। कोर रनटाइम सिर्फ 16 केबी में एक आर्म कॉर्टेक्स एम 3 पर फिट बैठता है और कई बुनियादी मॉडल चला सकता है। इसके लिए ऑपरेटिंग सिस्टम सपोर्ट, किसी मानक C या C++ लाइब्रेरी या डायनेमिक मेमोरी आवंटन की आवश्यकता नहीं है।

माइक्रोकंट्रोलर क्यों महत्वपूर्ण हैं

माइक्रोकंट्रोलर आमतौर पर छोटे, कम शक्ति वाले कंप्यूटिंग डिवाइस होते हैं जो हार्डवेयर के भीतर एम्बेडेड होते हैं जिन्हें बुनियादी गणना की आवश्यकता होती है। छोटे माइक्रोकंट्रोलर्स के लिए मशीन लर्निंग लाकर, हम अपने जीवन में उपयोग किए जाने वाले अरबों उपकरणों की बुद्धिमत्ता को बढ़ा सकते हैं, जिसमें घरेलू उपकरण और इंटरनेट ऑफ थिंग्स डिवाइस शामिल हैं, बिना महंगे हार्डवेयर या विश्वसनीय इंटरनेट कनेक्शन पर भरोसा किए, जो अक्सर बैंडविड्थ के अधीन होता है और बिजली की कमी और उच्च विलंबता में परिणाम। यह गोपनीयता बनाए रखने में भी मदद कर सकता है, क्योंकि कोई डेटा डिवाइस से बाहर नहीं जाता है। स्मार्ट उपकरणों की कल्पना करें जो आपकी दिनचर्या के अनुकूल हो सकते हैं, बुद्धिमान औद्योगिक सेंसर जो समस्याओं और सामान्य ऑपरेशन के बीच के अंतर को समझते हैं, और जादुई खिलौने जो बच्चों को मज़ेदार और आनंदमय तरीके से सीखने में मदद कर सकते हैं।

समर्थित प्लेटफॉर्म

माइक्रोकंट्रोलर्स के लिए TensorFlow Lite C++ 17 में लिखा गया है और इसके लिए 32-बिट प्लेटफॉर्म की आवश्यकता है। आर्म कॉर्टेक्स-एम सीरीज़ आर्किटेक्चर पर आधारित कई प्रोसेसर के साथ इसका बड़े पैमाने पर परीक्षण किया गया है, और इसे ESP32 सहित अन्य आर्किटेक्चर में पोर्ट किया गया है। ढांचा Arduino लाइब्रेरी के रूप में उपलब्ध है। यह Mbed जैसे विकास परिवेशों के लिए प्रोजेक्ट भी तैयार कर सकता है। यह खुला स्रोत है और इसे किसी भी C++ 17 प्रोजेक्ट में शामिल किया जा सकता है।

निम्नलिखित विकास बोर्ड समर्थित हैं:

उदाहरणों का अन्वेषण करें

प्रत्येक उदाहरण एप्लिकेशन गिथब पर है और इसमें एक README.md फ़ाइल है जो बताती है कि इसे इसके समर्थित प्लेटफॉर्म पर कैसे तैनात किया जा सकता है। कुछ उदाहरणों में विशिष्ट प्लेटफॉर्म का उपयोग करते हुए एंड-टू-एंड ट्यूटोरियल भी हैं, जैसा कि नीचे दिया गया है:

कार्यप्रवाह

माइक्रोकंट्रोलर पर TensorFlow मॉडल को परिनियोजित करने और चलाने के लिए निम्न चरणों की आवश्यकता होती है:

  1. एक मॉडल को प्रशिक्षित करें :
    • एक छोटा TensorFlow मॉडल बनाएं जो आपके लक्ष्य डिवाइस में फिट हो सके और इसमें समर्थित ऑपरेशन शामिल हों।
    • TensorFlow Lite कन्वर्टर का उपयोग करके TensorFlow Lite मॉडल में बदलें
    • डिवाइस पर रीड-ओनली प्रोग्राम मेमोरी में इसे स्टोर करने के लिए मानक टूल का उपयोग करके सी बाइट सरणी में कनवर्ट करें
  2. C++ लाइब्रेरी का उपयोग करके डिवाइस पर अनुमान चलाएँ और परिणामों को संसाधित करें।

सीमाएँ

माइक्रोकंट्रोलर्स के लिए TensorFlow Lite को माइक्रोकंट्रोलर विकास की विशिष्ट बाधाओं के लिए डिज़ाइन किया गया है। यदि आप अधिक शक्तिशाली उपकरणों पर काम कर रहे हैं (उदाहरण के लिए, एक एम्बेडेड लिनक्स डिवाइस जैसे रास्पबेरी पाई), तो मानक TensorFlow Lite ढांचे को एकीकृत करना आसान हो सकता है।

निम्नलिखित सीमाओं पर विचार किया जाना चाहिए:

  • TensorFlow संचालन के सीमित उपसमुच्चय के लिए समर्थन
  • उपकरणों के सीमित सेट के लिए समर्थन
  • निम्न-स्तरीय C++ API को मैन्युअल मेमोरी प्रबंधन की आवश्यकता होती है
  • डिवाइस पर प्रशिक्षण समर्थित नहीं है

अगले कदम