माइक्रोकंट्रोलर्स के लिए TensorFlow Lite को केवल कुछ किलोबाइट मेमोरी के साथ माइक्रोकंट्रोलर और अन्य उपकरणों पर मशीन लर्निंग मॉडल चलाने के लिए डिज़ाइन किया गया है। कोर रनटाइम सिर्फ 16 केबी में एक आर्म कॉर्टेक्स एम 3 पर फिट बैठता है और कई बुनियादी मॉडल चला सकता है। इसके लिए ऑपरेटिंग सिस्टम सपोर्ट, किसी मानक C या C++ लाइब्रेरी या डायनेमिक मेमोरी आवंटन की आवश्यकता नहीं है।
माइक्रोकंट्रोलर क्यों महत्वपूर्ण हैं
माइक्रोकंट्रोलर आमतौर पर छोटे, कम-शक्ति वाले कंप्यूटिंग डिवाइस होते हैं जो हार्डवेयर के भीतर एम्बेडेड होते हैं जिन्हें बुनियादी गणना की आवश्यकता होती है। छोटे माइक्रोकंट्रोलर के लिए मशीन लर्निंग लाकर, हम महंगे हार्डवेयर या विश्वसनीय इंटरनेट कनेक्शन पर भरोसा किए बिना, घरेलू उपकरणों और इंटरनेट ऑफ थिंग्स उपकरणों सहित, अपने जीवन में उपयोग किए जाने वाले अरबों उपकरणों की बुद्धिमत्ता को बढ़ा सकते हैं, जो अक्सर बैंडविड्थ के अधीन होता है। बिजली की कमी और उच्च विलंबता में परिणाम। यह गोपनीयता बनाए रखने में भी मदद कर सकता है, क्योंकि कोई भी डेटा डिवाइस को नहीं छोड़ता है। ऐसे स्मार्ट उपकरणों की कल्पना करें जो आपकी दिनचर्या के अनुकूल हों, बुद्धिमान औद्योगिक सेंसर जो समस्याओं और सामान्य संचालन के बीच के अंतर को समझते हैं, और जादुई खिलौने जो बच्चों को मज़ेदार और आनंदमय तरीके से सीखने में मदद कर सकते हैं।
समर्थित प्लेटफॉर्म
माइक्रोकंट्रोलर्स के लिए TensorFlow Lite C++ 11 में लिखा गया है और इसके लिए 32-बिट प्लेटफॉर्म की आवश्यकता है। आर्म कॉर्टेक्स-एम सीरीज़ आर्किटेक्चर पर आधारित कई प्रोसेसर के साथ इसका बड़े पैमाने पर परीक्षण किया गया है, और इसे ईएसपी 32 सहित अन्य आर्किटेक्चर में पोर्ट किया गया है। ढांचा एक Arduino पुस्तकालय के रूप में उपलब्ध है। यह Mbed जैसे विकास परिवेशों के लिए प्रोजेक्ट भी तैयार कर सकता है। यह खुला स्रोत है और इसे किसी भी C++ 11 प्रोजेक्ट में शामिल किया जा सकता है।
निम्नलिखित विकास बोर्ड समर्थित हैं:
- अरुडिनो नैनो 33 बीएलई सेंस
- स्पार्कफन एज
- STM32F746 डिस्कवरी किट
- एडफ्रूट एजबैज
- माइक्रोकंट्रोलर किट के लिए एडफ्रूट टेंसरफ्लो लाइट
- एडफ्रूट सर्किट खेल का मैदान ब्लूफ्रूट
- एस्प्रेसिफ ESP32-DevKitC
- एस्प्रेसिफ ESP-EYE
- वाईओ टर्मिनल: एटीएसएएमडी51
- हिमैक्स वी-आई प्लस ईवीबी एंडपॉइंट एआई डेवलपमेंट बोर्ड
- Synopsys DesignWare ARC EM सॉफ्टवेयर डेवलपमेंट प्लेटफॉर्म
- सोनी स्प्रेसेंस
उदाहरणों का अन्वेषण करें
प्रत्येक उदाहरण एप्लिकेशन जीथब पर है और इसमें एक README.md
फ़ाइल है जो बताती है कि इसे इसके समर्थित प्लेटफॉर्म पर कैसे तैनात किया जा सकता है। कुछ उदाहरणों में एक विशिष्ट प्लेटफॉर्म का उपयोग करने वाले एंड-टू-एंड ट्यूटोरियल भी हैं, जैसा कि नीचे दिया गया है:
- हैलो वर्ल्ड - माइक्रोकंट्रोलर्स के लिए TensorFlow Lite का उपयोग करने की पूर्ण मूल बातें प्रदर्शित करता है
- माइक्रो स्पीच - "हां" और "नहीं" शब्दों का पता लगाने के लिए माइक्रोफ़ोन के साथ ऑडियो कैप्चर करता है
- मैजिक वैंड - तीन अलग-अलग भौतिक इशारों को वर्गीकृत करने के लिए एक्सेलेरोमीटर डेटा कैप्चर करता है
- व्यक्ति का पता लगाना - किसी व्यक्ति की उपस्थिति या अनुपस्थिति का पता लगाने के लिए एक छवि संवेदक के साथ कैमरा डेटा कैप्चर करता है
कार्यप्रवाह
एक माइक्रोकंट्रोलर पर TensorFlow मॉडल को परिनियोजित करने और चलाने के लिए निम्नलिखित चरणों की आवश्यकता होती है:
- एक मॉडल को प्रशिक्षित करें :
- एक छोटा TensorFlow मॉडल तैयार करें जो आपके लक्षित डिवाइस में फिट हो सकता है और इसमें समर्थित संचालन शामिल हैं।
- TensorFlow Lite कनवर्टर का उपयोग करके एक TensorFlow Lite मॉडल में कनवर्ट करें।
- डिवाइस पर केवल-पढ़ने के लिए प्रोग्राम मेमोरी में स्टोर करने के लिए मानक टूल का उपयोग करके सी बाइट सरणी में कनवर्ट करें ।
- सी ++ लाइब्रेरी का उपयोग करके डिवाइस पर अनुमान चलाएं और परिणामों को संसाधित करें।
सीमाओं
माइक्रोकंट्रोलर के लिए TensorFlow Lite को माइक्रोकंट्रोलर विकास की विशिष्ट बाधाओं के लिए डिज़ाइन किया गया है। यदि आप अधिक शक्तिशाली उपकरणों पर काम कर रहे हैं (उदाहरण के लिए, एक एम्बेडेड लिनक्स डिवाइस जैसे रास्पबेरी पाई), तो मानक TensorFlow लाइट फ्रेमवर्क को एकीकृत करना आसान हो सकता है।
निम्नलिखित सीमाओं पर विचार किया जाना चाहिए:
- TensorFlow संचालन के सीमित सबसेट के लिए समर्थन
- उपकरणों के सीमित सेट के लिए समर्थन
- निम्न-स्तरीय C++ API के लिए मैन्युअल मेमोरी प्रबंधन की आवश्यकता होती है
- डिवाइस पर प्रशिक्षण समर्थित नहीं है
अगले कदम
- उदाहरण एप्लिकेशन को आज़माने के लिए माइक्रोकंट्रोलर्स के साथ शुरुआत करें और एपीआई का उपयोग करना सीखें।
- अपने स्वयं के प्रोजेक्ट में लाइब्रेरी का उपयोग करने का तरीका जानने के लिए C++ लाइब्रेरी को समझें ।
- माइक्रोकंट्रोलर पर परिनियोजन के लिए प्रशिक्षण और मॉडल परिवर्तित करने के बारे में अधिक जानने के लिए मॉडल बनाएं और बदलें।