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 GPU i akceleracji 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.