LiteRT CompiledModel Kotlin API

Die LiteRT CompiledModel API ist in Kotlin verfügbar und bietet Android-Entwicklern eine nahtlose, beschleunigerorientierte Erfahrung mit APIs auf hoher Ebene. Ein Beispiel finden Sie in der Kotlin-App zur Bildsegmentierung.

Im folgenden Leitfaden wird die grundlegende CPU-Inferenz der CompiledModel Kotlin API beschrieben. Weitere Informationen zu erweiterten Beschleunigungsfunktionen finden Sie in den Anleitungen zur GPU-Beschleunigung und NPU-Beschleunigung.

Maven-Paket hinzufügen

Fügen Sie Ihrem Android-Projekt das LiteRT-Maven-Paket hinzu:

dependencies {
  ...
  implementation `com.google.ai.edge.litert:litert:2.1.0`
}

CompiledModel erstellen

Initialisieren Sie die Laufzeit mit einem Modell und der von Ihnen gewählten Hardwarebeschleunigung:

val  model =
  CompiledModel.create(
    context.assets,
    "mymodel.tflite",
    CompiledModel.Options(Accelerator.CPU),
    env,
  )

Eingabe- und Ausgabepuffer erstellen

Erstellen Sie die erforderlichen Datenstrukturen (Puffer) für die Eingabedaten, die Sie in das Modell für die Inferenz einfügen, und für die Ausgabedaten, die das Modell nach der Inferenz erzeugt.

val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()

Wenn Sie den CPU-Arbeitsspeicher verwenden, füllen Sie die Eingaben, indem Sie Daten direkt in den ersten Eingabepuffer schreiben.

inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })

Modell aufrufen

Stellen Sie die Ein- und Ausgabepuffer bereit und führen Sie das Modell aus.

model.run(inputBuffers, outputBuffers)

Ausgaben abrufen

Ausgaben abrufen, indem die Modellausgabe direkt aus dem Speicher gelesen wird.

val outputFloatArray = outputBuffers[0].readFloat()

TensorBuffer“ verwenden

LiteRT bietet integrierte Unterstützung für die Interoperabilität von E/A-Puffern. Dazu wird die Tensor Buffer API (TensorBuffer) verwendet, um den Datenfluss in und aus dem CompiledModel zu verarbeiten. Die Tensor Buffer API bietet die Möglichkeit, Puffer zu schreiben (Write<T>()), zu lesen (Read<T>()) und zu sperren.

Eine umfassendere Ansicht der Implementierung der TensorBuffer API finden Sie im Quellcode unter TensorBuffer.kt.