LiteRT 提供多項工具,可將模型整合至 Android 應用程式。本頁說明開發工具,您可以運用這些 API 建構應用程式 Kotlin、Java 和 C++,並支援以下程式碼中的 LiteRT 開發: Android Studio。
使用 Kotlin 和 Java 進行建構的工具
以下各節將說明使用 LiteRT 時, 以及 Kotlin 和 Java 語言
LiteRT 程式庫
如要在 Android 應用程式中使用 LiteRT 程式庫,請加入 MavenCentral 加入開發專案
您可以在 build.gradle
依附元件中指定此屬性,如下所示:
dependencies {
...
implementation 'com.google.ai.edge.litert:+'
}
repositories {
...
google()
}
如果您使用夜間快照,請務必新增 Sonatype 快照 複製到專案中
這項 AAR 包含所有 Android 系統的二進位檔 ABI。如要縮減資源大小 僅納入您需要支援的 ABI,藉此測試應用程式的二進位檔。
除非您要指定特定硬體,否則應省略 x86
、x86_64
、
和 arm32
ABI。您可以使用下列 Gradle 進行設定
此外還會從 0 自動調整資源配置
您完全不必調整資源調度設定其中只包含 armeabi-v7a
和 arm64-v8a
,且
應該涵蓋大多數新型 Android 裝置。
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
如要進一步瞭解 abiFilters
,請參閱 Android
Android NDK 中的 ABI
說明文件。
LiteRT 支援資料庫
LiteRT Android 支援資料庫可讓您輕鬆整合模型 到應用程式中這提供了高階 API,可協助轉換原始輸入內容 轉換成模型要求的形式 然後解讀模型的輸出內容 減少所需的樣板程式碼數量
它支援輸入和輸出的通用資料格式,包括圖片和 陣列。並提供預先處理和後續處理單元,可執行以下工作 調整圖片大小及裁剪圖片
只要加入 LiteRT,即可在 Android 應用程式中使用支援資料庫 支援資料庫 AAR MavenCentral.
您可以在 build.gradle
依附元件中指定此屬性,如下所示:
dependencies {
implementation 'com.google.ai.edge.litert:litert-support:+'
}
如果您使用夜間快照,請務必新增 Sonatype 快照 複製到專案中
如需入門操作說明,請參閱 LiteRT Android 支援 程式庫。
使用 Android Studio
除了上述開發程式庫之外,Android Studio 也 提供整合 LiteRT 模型的相關支援,詳情請見下文。
Android Studio 機器學習模型繫結
Android Studio 4.1 以上版本的機器學習模型繫結功能可讓您
將 .tflite
模型檔案匯入現有的 Android 應用程式,然後產生
介面類別,讓您輕鬆將程式碼與模型整合。
如何匯入 LiteRT 模型:
在您要使用 LiteRT 模型的模組上按一下滑鼠右鍵,或是按一下 檔案 >新增 >其他 >LiteRT 模型。
選取 LiteRT 檔案的位置。請注意,這項工具 透過機器學習模型繫結設定模組的依附元件,並自動設定 將所有必要的依附元件新增至 Android 模組的
build.gradle
檔案。按一下
Finish
開始匯入程序。匯入完成後, 工具會顯示說明模型的畫面,包括輸入和輸出內容 張量如要開始使用模型,請選取「Kotlin」或「Java」,然後將程式碼複製及貼上 程式碼範例一節。
按兩下 TensorFlow 即可返回模型資訊畫面
Android Studio 中 ml
目錄下的 Lite 模型。如要進一步瞭解
透過 Android Studio 的 Modle Binding 功能前往 Android Studio
發行
附註。
如需在 Android Studio 中使用模型繫結的總覽,請參閱程式碼範例
操作說明。
使用 C 和 C++ 建構的工具
LiteRT 適用的 C 和 C++ 程式庫主要用於 使用 Android Native Development Kit (NDK) 建構應用程式的開發人員。 如果您使用 NDK 建構應用程式,可以透過 C++ 使用 LiteRT:
LiteRT C API
對於使用 NDK 的開發人員,我們建議使用這個 API。
下載 LiteRT AAR 託管於
MavenCentral
檔案、重新命名為 tensorflow-lite-*.zip
並解壓縮。您必須提供
headers/tensorflow/lite/
和 headers/tensorflow/lite/c/
中的標頭檔案
與資料夾相關的 libtensorflowlite_jni.so
動態程式庫
NDK 專案中的 jni/
資料夾。
c_api.h
標頭檔案包含關於使用 LiteRT C 的基本說明文件
也能使用 Google Cloud CLI 或
Compute Engine API
LiteRT C++ API
如要透過 C++ API 使用 LiteRT,您可以建構 C++ 共用 程式庫:
32bit armeabi-v7a:
bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so
64 位元 arm64-v8a:
bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so
目前尚無法直接擷取所有所需的標頭檔案
因此,你必須包含來自 TensorFlow 的 tensorflow/lite/
中的所有標頭檔案
Cloud Storage 也提供目錄同步處理功能此外,您還需要從
FlatBuffers 和
Abseil。