Android के लिए डेवलपमेंट टूल

TensorFlow Lite, Android ऐप्लिकेशन में मॉडल इंटिग्रेट करने के लिए कई टूल उपलब्ध कराता है. इस पेज पर, Kotlin, Java, और C++ पर ऐप्लिकेशन बनाने में इस्तेमाल किए जाने वाले डेवलपमेंट टूल के बारे में बताया गया है. साथ ही, Android Studio में TensorFlow Lite की डेवलपमेंट की सुविधा के बारे में भी जानकारी दी गई है.

Kotlin और Java की मदद से बनाने के लिए टूल

नीचे दिए गए सेक्शन में, TensorFlow Lite के ऐसे डेवलपमेंट टूल के बारे में बताया गया है जो Kotlin और Java भाषाओं का इस्तेमाल करते हैं.

TensorFlow Lite लाइब्रेरी

अपने डेवलपमेंट प्रोजेक्ट में, MavenCentral पर होस्ट किया गया AAR जोड़कर, अपने Android ऐप्लिकेशन में TensorFlow Lite लाइब्रेरी का इस्तेमाल करें.

इसे अपनी build.gradle डिपेंडेंसी में इस तरह बताया जा सकता है:

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

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

इस एएआर में सभी Android एबीआई के लिए बाइनरी शामिल होती हैं. सिर्फ़ उन एबीआई को शामिल करके, ऐप्लिकेशन की बाइनरी का साइज़ कम किया जा सकता है जो आपको सपोर्ट करने के लिए ज़रूरी हैं.

जब तक किसी खास हार्डवेयर को टारगेट नहीं किया जाता, तब तक आपको ज़्यादातर मामलों में x86, x86_64, और arm32 एबीआई को छोड़ देना चाहिए. नीचे दिए गए Gradle कॉन्फ़िगरेशन की मदद से, इसे कॉन्फ़िगर किया जा सकता है. खास तौर पर, इसमें सिर्फ़ armeabi-v7a और arm64-v8a शामिल हैं. साथ ही, ज़्यादातर Android डिवाइस पर इसका इस्तेमाल किया जाना चाहिए.

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

abiFilters के बारे में ज़्यादा जानने के लिए, Android एनडीके दस्तावेज़ में Android एबीआई देखें.

TensorFlow Lite सपोर्ट लाइब्रेरी

TensorFlow Lite की Android सपोर्ट लाइब्रेरी से, आपके ऐप्लिकेशन में मॉडल इंटिग्रेट करना आसान हो जाता है. यह हाई-लेवल एपीआई उपलब्ध कराता है, जो रॉ इनपुट डेटा को मॉडल के हिसाब से ज़रूरी फ़ॉर्मैट में बदलने में मदद करता है. साथ ही, मॉडल के आउटपुट को समझने में मदद करता है, जिससे बॉयलरप्लेट कोड की ज़रूरत को कम किया जा सकता है.

यह इनपुट और आउटपुट के लिए सामान्य डेटा फ़ॉर्मैट के साथ काम करता है. इनमें इमेज और कलेक्शन भी शामिल हैं. यह प्री- और पोस्ट-प्रोसेसिंग यूनिट भी देता है, जो इमेज का साइज़ बदलने और काटने जैसे काम करती हैं.

अपने Android ऐप्लिकेशन में सपोर्ट लाइब्रेरी का इस्तेमाल करने के लिए, TensorFlow Lite MavenCentral पर होस्ट की गई सपोर्ट लाइब्रेरी AAR का इस्तेमाल करें.

इसे अपनी build.gradle डिपेंडेंसी में इस तरह बताया जा सकता है:

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

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

इसका इस्तेमाल शुरू करने से जुड़े निर्देशों के लिए, TensorFlow Lite की Android Support Library देखें.

लाइब्रेरी के लिए, Android SDK के कम से कम वर्शन

लाइब्रेरी minSdkVersion डिवाइस से जुड़ी ज़रूरी शर्तें
tensorflow-lite 21 -
tensorflow-lite-gpu 21 जीएलईएस 3.1 या OpenCL (आम तौर पर, सिर्फ़ एपीआई 21 और उसके बाद वाले वर्शन पर उपलब्ध)
tensorflow-lite-support 21 -
tensorflow-lite-metadata 21 -

Android Studio का इस्तेमाल करना

ऊपर बताई गई डेवलपमेंट लाइब्रेरी के अलावा, Android Studio में TensorFlow Lite मॉडल को इंटिग्रेट करने में भी मदद मिलती है, जैसा कि नीचे बताया गया है.

Android Studio ML मॉडल बाइंडिंग

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

TensorFlow Lite (TFLite) मॉडल इंपोर्ट करने के लिए:

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

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

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

  4. इस मॉडल का इस्तेमाल करने के लिए, Kotlin या Java चुनें. इसके बाद, कोड को कॉपी करके सैंपल कोड सेक्शन में चिपकाएं.

Android Studio में ml डायरेक्ट्री में, TensorFlow लाइट मॉडल पर दो बार क्लिक करके, मॉडल की जानकारी वाली स्क्रीन पर वापस आया जा सकता है. Android Studio की मोडल बाइंडिंग सुविधा का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, Android Studio की जानकारी देखें. Android Studio में मॉडल बाइंडिंग का इस्तेमाल करने से जुड़ी खास जानकारी के लिए, कोड के उदाहरण में दिए गए instructions देखें.

C और C++ के साथ बनाने के लिए टूल

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

TFLite C API

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

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

TFLite C++ एपीआई

अगर आपको C++ एपीआई के ज़रिए TFLite का इस्तेमाल करना है, तो C++ शेयर की गई लाइब्रेरी बनाएं:

32बिट armeabi-v7a:

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

64बिट arm64-v8a:

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

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