LiteRT CompiledModel API, Kotlin में उपलब्ध है. इससे Android डेवलपर को, हाई-लेवल एपीआई के साथ बिना रुकावट के काम करने का अनुभव मिलता है. साथ ही, यह एपीआई ऐक्सलरेटर के साथ काम करता है. उदाहरण के लिए, इमेज सेगमेंटेशन Kotlin ऐप्लिकेशन देखें.
इस गाइड में, CompiledModel Kotlin API के बुनियादी सीपीयू इन्फ़रेंस के बारे में बताया गया है. ऐडवांस ऐक्सेलरेटेड सुविधाओं के लिए, जीपीयू ऐक्सेलरेटेड और एनपीयू ऐक्सेलरेटेड से जुड़ी गाइड देखें.
Maven पैकेज जोड़ना
अपने Android प्रोजेक्ट में LiteRT Maven पैकेज जोड़ें:
dependencies {
...
implementation `com.google.ai.edge.litert:litert:2.1.0`
}
बुनियादी अनुमान
CompiledModel बनाएं
मॉडल और अपनी पसंद के हार्डवेयर ऐक्सेलरेटर के साथ रनटाइम शुरू करें:
val model =
CompiledModel.create(
context.assets,
"mymodel.tflite",
CompiledModel.Options(Accelerator.CPU),
env,
)
इनपुट और आउटपुट बफ़र बनाना
इनपुट डेटा को सेव करने के लिए ज़रूरी डेटा स्ट्रक्चर (बफ़र) बनाएं. इस डेटा को मॉडल में इनफ़रेंस के लिए डाला जाएगा. साथ ही, आउटपुट डेटा को सेव करने के लिए ज़रूरी डेटा स्ट्रक्चर (बफ़र) बनाएं. यह डेटा, मॉडल में इनफ़रेंस चलाने के बाद जनरेट होगा.
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
अगर सीपीयू मेमोरी का इस्तेमाल किया जा रहा है, तो पहले इनपुट बफ़र में सीधे डेटा लिखकर इनपुट भरें.
inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })
मॉडल को चालू करना
इनपुट और आउटपुट बफ़र उपलब्ध कराकर, मॉडल को चलाएं.
model.run(inputBuffers, outputBuffers)
आउटपुट वापस पाएं
मेमोरी से मॉडल के आउटपुट को सीधे तौर पर पढ़कर, आउटपुट वापस पाना.
val outputFloatArray = outputBuffers[0].readFloat()
TensorBuffer का इस्तेमाल करें
LiteRT, I/O बफ़र इंटरऑपरेबिलिटी के लिए पहले से मौजूद सहायता उपलब्ध कराता है. यह CompiledModel में डेटा के फ़्लो को मैनेज करने के लिए, Tensor Buffer API (TensorBuffer) का इस्तेमाल करता है. Tensor Buffer API, बफ़र को लिखने (Write<T>()), पढ़ने (Read<T>()), और लॉक करने की सुविधा देता है.
TensorBuffer API को लागू करने के तरीके के बारे में ज़्यादा जानकारी के लिए, TensorBuffer.kt पर जाकर सोर्स कोड देखें.