इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

Generate model interfaces with TensorFlow Lite code generator

मेटाडेटा के साथ बढ़ाया गया TensorFlow Lite मॉडल के लिए, डेवलपर्स प्लेटफ़ॉर्म विशिष्ट आवरण कोड बनाने के लिए TensorFlow Lite Android आवरण कोड जनरेटर का उपयोग कर सकते हैं। रैपर कोड ByteBuffer साथ सीधे बातचीत करने की आवश्यकता को हटाता है। इसके बजाय, डेवलपर्स जैसे टाइप किया वस्तुओं के साथ TensorFlow लाइट मॉडल के साथ बातचीत कर सकते हैं Bitmap और Rect

कोड जनरेटर की उपयोगिता TensorFlow Lite मॉडल की मेटाडेटा प्रविष्टि की पूर्णता पर निर्भर करती है। यह देखने के लिए कि कोडेगन टूल प्रत्येक क्षेत्र को कैसे पार्स करता है, मेटाडेटा_केमए.एफबीएस में प्रासंगिक फ़ील्ड्स के अंतर्गत <Codegen usage> अनुभाग देखें।

आवरण कोड उत्पन्न करें

आपको अपने टर्मिनल में निम्नलिखित टूलिंग स्थापित करनी होगी:

pip install tflite-support

एक बार पूरा होने के बाद, कोड जनरेटर का उपयोग निम्नलिखित सिंटैक्स का उपयोग करके किया जा सकता है:

tflite_codegen --model=./model_with_metadata/mobilenet_v1_0.75_160_quantized.tflite \
    --package_name=org.tensorflow.lite.classify \
    --model_class_name=MyClassifierModel \
    --destination=./classify_wrapper

परिणामी कोड गंतव्य निर्देशिका में स्थित होगा। यदि आप Google Colab या अन्य दूरस्थ वातावरण का उपयोग कर रहे हैं, तो परिणाम को ज़िप संग्रह में ज़िप करना और इसे अपने Android Studio प्रोजेक्ट में डाउनलोड करना अधिक आसान हो सकता है:

# Zip up the generated code
!zip -r classify_wrapper.zip classify_wrapper/

# Download the archive
from google.colab import files
files.download('classify_wrapper.zip')

उत्पन्न कोड का उपयोग करना

चरण 1: उत्पन्न कोड आयात करें

यदि निर्देशिका संरचना में आवश्यक हो तो उत्पन्न कोड को अनज़िप करें। उत्पन्न कोड की जड़ को SRC_ROOT माना जाता है।

एंड्रॉइड स्टूडियो प्रोजेक्ट खोलें जहां आप TensorFlow लाइट मॉडल का उपयोग करना चाहते हैं और उत्पन्न मॉड्यूल का आयात करें: और फ़ाइल -> नया -> आयात मॉड्यूल -> SRC_ROOT चुनें

उपरोक्त उदाहरण का उपयोग करते हुए, निर्देशिका और आयात किए गए मॉड्यूल को classify_wrapper कहा जाएगा।

चरण 2: ऐप की build.gradle फ़ाइल को अपडेट करें

एप्लिकेशन मॉड्यूल में जो उत्पन्न लाइब्रेरी मॉड्यूल का उपभोग करेगा:

Android अनुभाग के अंतर्गत, निम्नलिखित जोड़ें:

aaptOptions {
   noCompress "tflite"
}

निर्भरता अनुभाग के तहत, निम्नलिखित जोड़ें:

implementation project(":classify_wrapper")

चरण 3: मॉडल का उपयोग करना

// 1. Initialize the model
MyClassifierModel myImageClassifier = null;

try {
    myImageClassifier = new MyClassifierModel(this);
} catch (IOException io){
    // Error reading the model
}

if(null != myImageClassifier) {

    // 2. Set the input with a Bitmap called inputBitmap
    MyClassifierModel.Inputs inputs = myImageClassifier.createInputs();
    inputs.loadImage(inputBitmap));

    // 3. Run the model
    MyClassifierModel.Outputs outputs = myImageClassifier.run(inputs);

    // 4. Retrieve the result
    Map<String, Float> labeledProbability = outputs.getProbability();
}

त्वरित मॉडल प्रतिक्षेप

उत्पन्न कोड डेवलपर्स को प्रतिनिधियों के उपयोग और थ्रेड्स की संख्या के माध्यम से अपने कोड को तेज करने का एक तरीका प्रदान करता है। मॉडल ऑब्जेक्ट को आरंभ करते समय इन्हें सेट किया जा सकता है क्योंकि इसमें तीन पैरामीटर होते हैं:

  • Context : Android गतिविधि या सेवा से संदर्भ
  • (ऑप्शनल) Device : उदाहरण के लिए TFLite त्वरण प्रतिनिधि GPUDelegate या NNAPIDelegate
  • (वैकल्पिक) numThreads : मॉडल को चलाने के लिए उपयोग किए जाने वाले धागों की संख्या - डिफ़ॉल्ट एक है।

उदाहरण के लिए, NNAPI प्रतिनिधि और अधिकतम तीन थ्रेड्स का उपयोग करने के लिए, आप इस तरह से मॉडल को इनिशियलाइज़ कर सकते हैं:

try {
    myImageClassifier = new MyClassifierModel(this, Model.Device.NNAPI, 3);
} catch (IOException io){
    // Error reading the model
}

समस्या निवारण

अगर आपको 'java.io.ile.FileNotFoundException' मिलती है: इस फाइल को फाइल डिस्क्रिप्टर के रूप में नहीं खोला जा सकता है; यह संभवत: संपीडित त्रुटि है, ऐप मॉड्यूल के एंड्रॉइड सेक्शन के तहत निम्नलिखित लाइनें डालें जो लाइब्रेरी मॉड्यूल का उपयोग करेगा:

aaptOptions {
   noCompress "tflite"
}

एंड्रॉइड स्टूडियो एमएल मॉडल बाइंडिंग के साथ कोड जनरेट करें

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