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

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

जल्दी से Android कोड लिखना शुरू करने के लिए, Android के लिए क्विकस्टार्ट देखें

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

निम्नलिखित खंड TensorFlow Lite के विकास टूल का वर्णन करते हैं जो कोटलिन और जावा भाषाओं का उपयोग करते हैं।

TensorFlow लाइट टास्क लाइब्रेरी

TensorFlow लाइट टास्क लाइब्रेरी में ऐप डेवलपर्स के लिए 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 लाइट टास्क लाइब्रेरी ओवरव्यू में परिचय देखें।

TensorFlow लाइट लाइब्रेरी

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यदि आप सी ++ एपीआई के माध्यम से टीएफलाइट का उपयोग करना चाहते हैं, तो आप सी ++ साझा पुस्तकालय बना सकते हैं:

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

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 और Abseil से शीर्षलेख फ़ाइलों की आवश्यकता होगी।