LiteRT CompiledModel Kotlin API

Interfejs LiteRT CompiledModel API jest dostępny w języku Kotlin i zapewnia programistom na Androida bezproblemową obsługę akceleratorów dzięki interfejsom API wysokiego poziomu. Przykład znajdziesz w aplikacji do segmentacji obrazu w Kotlinie.

Poniższy przewodnik pokazuje podstawowe wnioskowanie na procesorze za pomocą interfejsu CompiledModel Kotlin API. Więcej informacji o zaawansowanych funkcjach akceleracji znajdziesz w przewodnikach dotyczących akceleracji przez GPUakceleracji przez NPU.

Dodawanie pakietu Maven

Dodaj pakiet LiteRT Maven do projektu na Androida:

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

Podstawowe wnioskowanie

Utwórz: CompiledModel

Zainicjuj środowisko wykonawcze za pomocą modelu i wybranego przyspieszenia sprzętowego:

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

Tworzenie buforów wejściowych i wyjściowych

Utwórz niezbędne struktury danych (bufory) do przechowywania danych wejściowych, które będą przekazywane do modelu w celu wnioskowania, oraz danych wyjściowych, które model generuje po przeprowadzeniu wnioskowania.

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

Jeśli używasz pamięci procesora, wypełnij pola, wpisując dane bezpośrednio do pierwszego bufora wejściowego.

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

Wywoływanie modelu

Podaj bufory wejściowe i wyjściowe, a następnie uruchom model.

model.run(inputBuffers, outputBuffers)

Pobieranie danych wyjściowych

Pobieraj dane wyjściowe, odczytując je bezpośrednio z pamięci.

val outputFloatArray = outputBuffers[0].readFloat()

Używaj klawisza TensorBuffer

LiteRT zapewnia wbudowaną obsługę interoperacyjności buforów wejścia/wyjścia za pomocą interfejsu Tensor Buffer API (TensorBuffer), który zarządza przepływem danych do i z CompiledModel. Interfejs Tensor Buffer API umożliwia zapisywanie (Write<T>()) i odczytywanie (Read<T>()) buforów oraz ich blokowanie.

Aby uzyskać pełniejszy obraz implementacji interfejsu Tensor Buffer API, zapoznaj się z kodem źródłowym w TensorBuffer.kt.