Android के लिए विकास उपकरण

TensorFlow Lite एंड्रॉइड ऐप्स में मॉडलों को एकीकृत करने के लिए कई टूल प्रदान करता है। यह पृष्ठ कोटलिन, जावा और सी++ के साथ ऐप्स बनाने में उपयोग के लिए विकास टूल के साथ-साथ एंड्रॉइड स्टूडियो में टेन्सरफ्लो लाइट विकास के लिए समर्थन का वर्णन करता है।

एंड्रॉइड कोड को तुरंत लिखना शुरू करने के लिए, एंड्रॉइड के लिए क्विकस्टार्ट देखें

कोटलिन और जावा के साथ निर्माण के लिए उपकरण

निम्नलिखित अनुभाग टेन्सरफ्लो लाइट के लिए विकास उपकरणों का वर्णन करते हैं जो कोटलिन और जावा भाषाओं का उपयोग करते हैं।

टेन्सरफ्लो लाइट टास्क लाइब्रेरी

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

अपने एंड्रॉइड ऐप में टास्क लाइब्रेरी का उपयोग करने के लिए, क्रमशः टास्क विजन लाइब्रेरी , टास्क टेक्स्ट लाइब्रेरी और टास्क ऑडियो लाइब्रेरी के लिए मेवेनसेंट्रल से एएआर का उपयोग करें।

आप इसे अपनी build.gradle निर्भरता में निम्नानुसार निर्दिष्ट कर सकते हैं:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
    implementation 'org.tensorflow:tensorflow-lite-task-text:+'
    implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}

यदि आप रात्रिकालीन स्नैपशॉट का उपयोग करते हैं, तो सुनिश्चित करें कि आप अपने प्रोजेक्ट में सोनाटाइप स्नैपशॉट रिपॉजिटरी जोड़ें।

अधिक विवरण के लिए TensorFlow Lite टास्क लाइब्रेरी अवलोकन में परिचय देखें।

टेन्सरफ्लो लाइट लाइब्रेरी

अपने विकास प्रोजेक्ट में MavenCentral पर होस्ट किए गए AAR को जोड़कर अपने एंड्रॉइड ऐप में TensorFlow Lite लाइब्रेरी का उपयोग करें।

आप इसे अपनी build.gradle निर्भरता में निम्नानुसार निर्दिष्ट कर सकते हैं:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:+'
}

यदि आप रात्रिकालीन स्नैपशॉट का उपयोग करते हैं, तो सुनिश्चित करें कि आप अपने प्रोजेक्ट में सोनाटाइप स्नैपशॉट रिपॉजिटरी जोड़ें।

इस AAR में सभी Android ABI के लिए बायनेरिज़ शामिल हैं। आप केवल उन एबीआई को शामिल करके अपने एप्लिकेशन के बाइनरी के आकार को कम कर सकते हैं जिनका आपको समर्थन करने की आवश्यकता है।

जब तक आप विशिष्ट हार्डवेयर को लक्षित नहीं कर रहे हैं, आपको ज्यादातर मामलों में x86 , x86_64 , और arm32 ABI को छोड़ देना चाहिए। आप इसे निम्नलिखित ग्रैडल कॉन्फ़िगरेशन के साथ कॉन्फ़िगर कर सकते हैं। इसमें विशेष रूप से केवल armeabi-v7a और arm64-v8a शामिल हैं, और इसमें अधिकांश आधुनिक एंड्रॉइड डिवाइस शामिल होने चाहिए।

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

abiFilters के बारे में अधिक जानने के लिए, Android NDK दस्तावेज़ में Android ABI देखें।

टेन्सरफ्लो लाइट सपोर्ट लाइब्रेरी

TensorFlow Lite Android सपोर्ट लाइब्रेरी आपके एप्लिकेशन में मॉडलों को एकीकृत करना आसान बनाती है। यह उच्च-स्तरीय एपीआई प्रदान करता है जो कच्चे इनपुट डेटा को मॉडल द्वारा आवश्यक रूप में बदलने में मदद करता है, और मॉडल के आउटपुट की व्याख्या करता है, जिससे आवश्यक बॉयलरप्लेट कोड की मात्रा कम हो जाती है।

यह छवियों और सरणियों सहित इनपुट और आउटपुट के लिए सामान्य डेटा प्रारूपों का समर्थन करता है। यह प्री- और पोस्ट-प्रोसेसिंग इकाइयाँ भी प्रदान करता है जो छवि का आकार बदलने और क्रॉप करने जैसे कार्य करती हैं।

MavenCentral पर होस्ट की गई TensorFlow Lite सपोर्ट लाइब्रेरी AAR को शामिल करके अपने एंड्रॉइड ऐप में सपोर्ट लाइब्रेरी का उपयोग करें।

आप इसे अपनी build.gradle निर्भरता में निम्नानुसार निर्दिष्ट कर सकते हैं:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-support:+'
}

यदि आप रात्रिकालीन स्नैपशॉट का उपयोग करते हैं, तो सुनिश्चित करें कि आप अपने प्रोजेक्ट में सोनाटाइप स्नैपशॉट रिपॉजिटरी जोड़ें।

आरंभ करने के तरीके के निर्देशों के लिए, TensorFlow Lite Android सपोर्ट लाइब्रेरी देखें।

पुस्तकालयों के लिए न्यूनतम Android SDK संस्करण

पुस्तकालय minSdkVersion डिवाइस आवश्यकताएँ
टेंसरफ़्लो-लाइट 19 एनएनएपीआई उपयोग के लिए एपीआई 27+ की आवश्यकता होती है
टेंसरफ्लो-लाइट-जीपीयू 19 जीएलईएस 3.1 या ओपनसीएल (आमतौर पर केवल एपीआई 21+ पर उपलब्ध है
टेंसरफ़्लो-लाइट-हेक्सागोन 19 -
टेंसरफ़्लो-लाइट-समर्थन 19 -
टेंसरफ़्लो-लाइट-टास्क-विज़न 21 android.graphics.Color संबंधित API के लिए API 26+ की आवश्यकता होती है
टेंसरफ़्लो-लाइट-कार्य-पाठ 21 -
टेंसरफ्लो-लाइट-टास्क-ऑडियो 23 -
टेंसरफ़्लो-लाइट-मेटाडेटा 19 -

एंड्रॉइड स्टूडियो का उपयोग करना

ऊपर वर्णित विकास पुस्तकालयों के अलावा, एंड्रॉइड स्टूडियो टेन्सरफ्लो लाइट मॉडल को एकीकृत करने के लिए भी समर्थन प्रदान करता है, जैसा कि नीचे बताया गया है।

एंड्रॉइड स्टूडियो एमएल मॉडल बाइंडिंग

एंड्रॉइड स्टूडियो 4.1 और बाद के संस्करण की एमएल मॉडल बाइंडिंग सुविधा आपको अपने मौजूदा एंड्रॉइड ऐप में .tflite मॉडल फ़ाइलों को आयात करने और मॉडल के साथ अपने कोड को एकीकृत करना आसान बनाने के लिए इंटरफ़ेस कक्षाएं उत्पन्न करने की अनुमति देती है।

TensorFlow Lite (TFLite) मॉडल आयात करने के लिए:

  1. उस मॉड्यूल पर राइट-क्लिक करें जिसे आप TFLite मॉडल का उपयोग करना चाहते हैं या फ़ाइल > नया > अन्य > TensorFlow लाइट मॉडल पर क्लिक करें।

  2. अपनी TensorFlow Lite फ़ाइल का स्थान चुनें। ध्यान दें कि टूलिंग मॉड्यूल की निर्भरता को एमएल मॉडल बाइंडिंग के साथ कॉन्फ़िगर करती है और स्वचालित रूप से आपके एंड्रॉइड मॉड्यूल की build.gradle फ़ाइल में सभी आवश्यक निर्भरताएं जोड़ती है।

  3. आयात प्रक्रिया शुरू करने के लिए Finish पर क्लिक करें। जब आयात समाप्त हो जाता है, तो टूल मॉडल का वर्णन करने वाली एक स्क्रीन प्रदर्शित करता है, जिसमें उसके इनपुट और आउटपुट टेंसर शामिल होते हैं।

  4. मॉडल का उपयोग शुरू करने के लिए, कोटलिन या जावा का चयन करें, कोड को कॉपी करें और नमूना कोड अनुभाग में पेस्ट करें।

आप एंड्रॉइड स्टूडियो में ml निर्देशिका के अंतर्गत टेन्सरफ्लो लाइट मॉडल पर डबल क्लिक करके मॉडल सूचना स्क्रीन पर वापस लौट सकते हैं। एंड्रॉइड स्टूडियो की मॉडल बाइंडिंग सुविधा का उपयोग करने के बारे में अधिक जानकारी के लिए, एंड्रॉइड स्टूडियो रिलीज़ नोट्स देखें। एंड्रॉइड स्टूडियो में मॉडल बाइंडिंग का उपयोग करने के अवलोकन के लिए, कोड उदाहरण निर्देश देखें।

C और C++ के साथ निर्माण के लिए उपकरण

TensorFlow Lite के लिए C और C++ लाइब्रेरी मुख्य रूप से उन डेवलपर्स के लिए हैं जो अपने ऐप्स बनाने के लिए एंड्रॉइड नेटिव डेवलपमेंट किट (NDK) का उपयोग करते हैं। यदि आप एनडीके के साथ अपना ऐप बनाते हैं तो C++ के माध्यम से TFLite का उपयोग करने के दो तरीके हैं:

टीएफलाइट सी एपीआई

एनडीके का उपयोग करने वाले डेवलपर्स के लिए इस एपीआई का उपयोग अनुशंसित दृष्टिकोण है। MavenCentral फ़ाइल पर होस्ट किए गए TensorFlow Lite AAR को डाउनलोड करें, इसका नाम बदलकर tensorflow-lite-*.zip और इसे अनज़िप करें। आपको अपने एनडीके प्रोजेक्ट में headers/tensorflow/lite/ और headers/tensorflow/lite/c/ फ़ोल्डर्स में चार हेडर फ़ाइलें और jni/ फ़ोल्डर में प्रासंगिक libtensorflowlite_jni.so डायनामिक लाइब्रेरी शामिल करनी होगी।

c_api.h हेडर फ़ाइल में TFLite C API का उपयोग करने के बारे में बुनियादी दस्तावेज़ शामिल हैं।

टीएफलाइट सी++ एपीआई

यदि आप C++ API के माध्यम से TFLite का उपयोग करना चाहते हैं, तो आप C++ साझा लाइब्रेरी बना सकते हैं:

32बिट आर्मेबी-वी7ए:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

64 बिट आर्म64-वी8ए:

bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so

वर्तमान में, सभी आवश्यक हेडर फ़ाइलों को निकालने का कोई सीधा तरीका नहीं है, इसलिए आपको TensorFlow रिपॉजिटरी से सभी हेडर फ़ाइलों को tensorflow/lite/ में शामिल करना होगा। इसके अतिरिक्त, आपको फ़्लैटबफ़र्स और एब्सिल से हेडर फ़ाइलों की आवश्यकता होगी।