माइक्रोकंट्रोलर के लिए TensorFlow Lite को, माइक्रोकंट्रोलर और कुछ ही किलोबाइट मेमोरी वाले अन्य डिवाइसों पर मशीन लर्निंग मॉडल चलाने के लिए डिज़ाइन किया गया है. कोर रनटाइम, Arm Cortex M3 में बस 16 केबी में फ़िट हो जाता है और कई बेसिक मॉडल चला सकता है. इसके लिए, ऑपरेटिंग सिस्टम के सपोर्ट, किसी भी स्टैंडर्ड C या C++ लाइब्रेरी या डाइनैमिक मेमोरी ऐलोकेशन की ज़रूरत नहीं होती.
माइक्रोकंट्रोलर क्यों ज़रूरी हैं
माइक्रोकंट्रोलर आम तौर पर छोटे और कम क्षमता वाले कंप्यूटिंग डिवाइस होते हैं. ये हार्डवेयर में एम्बेड होते हैं, जिनके लिए बुनियादी हिसाब की ज़रूरत होती है. छोटे-छोटे माइक्रोकंट्रोलर की मदद से मशीन लर्निंग की मदद से, हम उन करोड़ों डिवाइसों की इंटेलिजेंस बढ़ा सकते हैं जिनका इस्तेमाल हम अपनी ज़िंदगी में करते हैं. इनमें घरेलू उपकरण और 'चीज़ों के इंटरनेट' डिवाइस शामिल हैं. इसके लिए, महंगे हार्डवेयर या भरोसेमंद इंटरनेट कनेक्शन की ज़रूरत नहीं होती. आम तौर पर, बैंडविथ और पावर से जुड़ी परेशानी का सामना करना पड़ता है. साथ ही, इंटरनेट कनेक्शन में बहुत ज़्यादा समय लग सकता है. इससे निजता बनाए रखने में भी मदद मिल सकती है, क्योंकि डिवाइस में कोई भी डेटा नहीं रहता. ऐसे स्मार्ट उपकरणों के बारे में सोचिए जो आपके रोज़ाना के रूटीन और इंडस्ट्रियल सेंसर के हिसाब से काम कर सकते हैं, जो समस्याओं और सामान्य इस्तेमाल करने के तरीक़े के बीच का फ़र्क़ समझते हैं. साथ ही, ऐसे जादुई खिलौनों के बारे में सोचिए जो बच्चों को मज़ेदार और मज़ेदार तरीके से सीखने में मदद कर सकते हैं.
इन प्लैटफ़ॉर्म पर चलाया जा सकता है
माइक्रोकंट्रोलर के लिए TensorFlow Lite, C++ 17 में लिखा गया है और इसके लिए 32-बिट प्लैटफ़ॉर्म होना ज़रूरी है. इसे आर्म कॉर्टेक्स-एम सीरीज़ आर्किटेक्चर पर आधारित कई प्रोसेसर के साथ बड़े पैमाने पर टेस्ट किया गया है. साथ ही, इसे ESP32 जैसे अन्य आर्किटेक्चर में भी इस्तेमाल किया गया है. यह फ़्रेमवर्क, Arduino लाइब्रेरी के तौर पर उपलब्ध है. यह डेवलपमेंट एनवायरमेंट के लिए भी प्रोजेक्ट जनरेट कर सकता है, जैसे कि Mbed. यह ओपन सोर्स है और इसे किसी भी C++ 17 प्रोजेक्ट में शामिल किया जा सकता है.
ये डेवलपमेंट बोर्ड काम करते हैं:
- आर्डुइनो नैनो 33 BLE सेंस
- SparkFun Edge
- STM32F746 डिस्कवरी किट
- Adafruit एजबैज
- माइक्रोकंट्रोलर किट के लिए Adafruit TensorFlow Lite
- ऐडफ़्रूट सर्किट प्लेग्राउंड ब्लूफ़्रूट
- एस्प्रेसिफ़ ESP32-DevKitC
- एस्प्रेसिफ़ ईएसपी-आई
- Wio टर्मिनल: ATSAMD51
- Himax WE-I Plus ईवीबी एंडपॉइंट एआई डेवलपमेंट बोर्ड
- Synopsys DesignWare ARC EM सॉफ़्टवेयर डेवलपमेंट प्लैटफ़ॉर्म
- सोनी स्प्रेसेंस
उदाहरण देखें
उदाहरण के तौर पर दिया गया हर ऐप्लिकेशन, GitHub पर है. इसमें एक README.md
फ़ाइल है, जिसमें यह बताया गया है कि इसे उन प्लैटफ़ॉर्म पर कैसे डिप्लॉय किया जा सकता है जिन पर यह काम करता है. कुछ उदाहरणों में खास प्लैटफ़ॉर्म का इस्तेमाल करने वाले
पूरी तरह से काम करने वाले ट्यूटोरियल भी होते हैं, जैसा कि नीचे दिया गया है:
- नमस्ते दुनिया - इसमें माइक्रोकंट्रोलर के लिए TensorFlow Lite इस्तेमाल करने की बुनियादी बातें बताई गई हैं
- माइक्रो स्पीच - "हां" और "नहीं" शब्दों का पता लगाने के लिए, माइक्रोफ़ोन से ऑडियो को कैप्चर करता है
- व्यक्ति की पहचान करना - इमेज सेंसर से कैमरे का डेटा कैप्चर करता है, ताकि किसी व्यक्ति की मौजूदगी या मौजूदगी का पता लगाया जा सके
वर्कफ़्लो
माइक्रोकंट्रोलर पर TensorFlow मॉडल लागू करने और उसे चलाने के लिए, नीचे दिया गया तरीका अपनाएं:
- किसी मॉडल को ट्रेनिंग दें:
- TensorFlow का एक छोटा मॉडल जनरेट करें, जो आपके टारगेट डिवाइस के हिसाब से हो. साथ ही, इसमें साथ ही काम करने वाली कार्रवाइयां शामिल हों.
- TensorFlow Lite कन्वर्टर का इस्तेमाल करके, TensorFlow Lite के लाइट मॉडल में बदलें.
- उसे डिवाइस पर रीड-ओनली प्रोग्राम मेमोरी में स्टोर करने के लिए, स्टैंडर्ड टूल का इस्तेमाल करके सी बाइट अरे में बदलें.
- C++ लाइब्रेरी का इस्तेमाल करके, डिवाइस पर अनुमान चलाएं और नतीजे प्रोसेस करें.
सीमाएं
माइक्रोकंट्रोलर के लिए TensorFlow Lite, माइक्रोकंट्रोलर के डेवलपमेंट की खास शर्तों के हिसाब से डिज़ाइन किया गया है. अगर ज़्यादा बेहतर डिवाइस (जैसे, Raspबेरी Pi जैसा एम्बेड किया गया Linux डिवाइस) पर काम किया जा रहा है, तो स्टैंडर्ड TensorFlow Lite फ़्रेमवर्क को इंटिग्रेट करना आसान हो सकता है.
इन सीमाओं को ध्यान में रखना चाहिए:
- TensorFlow के सीमित सबसेट के लिए सहायता
- यह कुछ डिवाइसों के लिए उपलब्ध है
- लो-लेवल का C++ एपीआई जिसके लिए मैन्युअल तौर पर मेमोरी मैनेज करने की ज़रूरत होती है
- डिवाइस पर ट्रेनिंग उपलब्ध नहीं है
अगले चरण
- उदाहरण ऐप्लिकेशन आज़माने के लिए माइक्रोकंट्रोलर का इस्तेमाल शुरू करें और एपीआई इस्तेमाल करने का तरीका जानें.
- अपने प्रोजेक्ट में लाइब्रेरी का इस्तेमाल करने का तरीका जानने के लिए, C++ लाइब्रेरी को समझें.
- माइक्रोकंट्रोलर पर डिप्लॉयमेंट के लिए ट्रेनिंग और मॉडल को बदलने के बारे में ज़्यादा जानने के लिए, मॉडल बनाएं और उन्हें बदलें.