TensorFlow Lite 提供多項工具,可將模型整合至 Android 應用程式。本頁說明以 Kotlin、Java 和 C++ 建構應用程式時使用的開發工具,以及 Android Studio 中 TensorFlow Lite 開發作業的支援。
使用 Kotlin 和 Java 進行建構的工具
以下各節說明使用 Kotlin 和 Java 語言的 TensorFlow Lite 開發工具。
TensorFlow Lite 程式庫
將在 MavenCentral 託管的 AAR 新增至開發專案,在 Android 應用程式中使用 TensorFlow Lite 程式庫。
您可以在 build.gradle
依附元件中指定此屬性,如下所示:
dependencies {
implementation 'org.tensorflow:tensorflow-lite:+'
}
如果使用夜間快照,請務必將 Sonatype 快照存放區新增至專案。
這個 AAR 內含所有 Android ABI 的二進位檔。您可以只加入支援所需的 ABI,藉此縮減應用程式二進位檔的大小。
除非您要指定特定硬體,否則在大多數情況下應省略 x86
、x86_64
和 arm32
ABI。您可以透過下列 Gradle 設定來進行這項設定。具體內容僅包含 armeabi-v7a
和 arm64-v8a
,應適用於大多數新型 Android 裝置。
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
如要進一步瞭解 abiFilters
,請參閱 Android NDK 說明文件中的「Android ABI」。
TensorFlow Lite 支援資料庫
TensorFlow Lite Android 支援資料庫可讓您輕鬆將模型整合至應用程式中。這種 API 提供的高階 API 有助於將原始輸入資料轉換為模型所需的格式,並解讀模型的輸出內容,進而減少所需的樣板程式碼。
它支援輸入和輸出的常用資料格式,包括圖片和陣列。也提供前後處理單元,能執行調整大小和裁剪等工作。
在 Android 應用程式中使用支援資料庫,方法是加入 TensorFlow Lite 支援資料庫 AAR (由 MavenCentral 託管)。
您可以在 build.gradle
依附元件中指定此屬性,如下所示:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-support:+'
}
如果使用夜間快照,請務必將 Sonatype 快照存放區新增至專案。
如要瞭解如何開始使用,請參閱 TensorFlow Lite Android 支援資料庫。
程式庫的最低 Android SDK 版本
程式庫 | minSdkVersion |
裝置需求 |
---|---|---|
tensorflow-lite | 21 | - |
tensorflow-lite-gpu | 21 | GLES 3.1 或 OpenCL (通常僅適用於 API 21 以上版本) |
tensorflow-lite-support | 21 | - |
tensorflow-lite-metadata | 21 | - |
使用 Android Studio
除了上述開發程式庫以外,Android Studio 也支援整合 TensorFlow Lite 模型,如下所述。
Android Studio 機器學習模型繫結
Android Studio 4.1 以上版本的機器學習模型繫結功能可讓您將 .tflite
模型檔案匯入現有的 Android 應用程式,並產生介面類別,更輕鬆地將程式碼與模型整合。
如要匯入 TensorFlow Lite (TFLite) 模型:
在您要使用的 TFLite 模型的模組上按一下滑鼠右鍵,或依序點選「File」>「New」>「Other」>「TensorFlow Lite Model」。
選取 TensorFlow Lite 檔案的位置。請注意,此工具會使用機器學習模型繫結來設定模組的依附元件,並自動將所有必要的依附元件加入 Android 模組的
build.gradle
檔案。按一下
Finish
開始匯入程序。匯入完成後,工具會顯示說明模型的畫面,包括模型的輸入和輸出張量。如要開始使用模型,請選取 Kotlin 或 Java,然後複製程式碼並貼到「Sample Code」區段。
如要返回模型資訊畫面,請在 Android Studio 的 ml
目錄中按兩下 TensorFlow Lite 模型。如要進一步瞭解如何使用 Android Studio 的 Modle Binding 功能,請參閱 Android Studio 版本資訊。如需在 Android Studio 中使用模型繫結總覽,請參閱程式碼範例instructions。
使用 C 和 C++ 進行建構的工具
TensorFlow Lite 的 C 和 C++ 程式庫主要適用於使用 Android Native Development Kit (NDK) 建構應用程式的開發人員。如果您使用 NDK 建構應用程式,可以透過 C++ 使用 TFLite 的方法有兩種:
TFLite C API
對於使用 NDK 的開發人員,建議使用這個 API。下載 MavenCentral 託管的 TensorFlow Lite AAR 檔案,重新命名為 tensorflow-lite-*.zip
,然後解壓縮該檔案。您必須將四個標頭檔案加入 headers/tensorflow/lite/
和 headers/tensorflow/lite/c/
資料夾,以及相關的 libtensorflowlite_jni.so
動態程式庫 (位於 NDK 專案的 jni/
資料夾中)。
c_api.h
標頭檔案包含使用 TFLite C API 的基本說明文件。
TFLite C++ API
如要透過 C++ API 使用 TFLite,您可以建構 C++ 共用程式庫:
32 位元 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/
中加入所有標頭檔案。此外,您需要 FlatBuffers 和 Abseil 的標頭檔案。