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

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

Kotlin और Java के साथ बनाने के लिए टूल

यहां दिए गए सेक्शन में, LiteRT के लिए डेवलपमेंट टूल के बारे में बताया गया है. Kotlin और Java की लैंग्वेज.

LiteRT लाइब्रेरी

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

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

dependencies {
    ...
    implementation 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

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

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

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

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

abiFilters के बारे में ज़्यादा जानने के लिए, Android पर जाएं Android NDK में ABI दस्तावेज़.

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

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

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

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

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

dependencies {
    implementation 'com.google.ai.edge.litert:litert-support:+'
}

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

इसका इस्तेमाल शुरू करने के बारे में जानने के लिए, LiteRT Android की सहायता टीम से संपर्क करें लाइब्रेरी.

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

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

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

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

LiteRT मॉडल इंपोर्ट करने के लिए:

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

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

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

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

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

C और C++ की मदद से बिल्डिंग बनाने के लिए टूल

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

LiteRT C एपीआई

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

c_api.h हेडर फ़ाइल में LiteRT C इस्तेमाल करने के बारे में बुनियादी दस्तावेज़ शामिल हैं एपीआई.

LiteRT C++ एपीआई

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

32बिट आर्मेबी-v7a:

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

64बिट आर्म64-v8a:

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

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