Android 適用的開發工具

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,藉此縮減應用程式二進位檔的大小。

除非您要指定特定硬體,否則在大多數情況下應省略 x86x86_64arm32 ABI。您可以透過下列 Gradle 設定來進行這項設定。具體內容僅包含 armeabi-v7aarm64-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) 模型:

  1. 在您要使用的 TFLite 模型的模組上按一下滑鼠右鍵,或依序點選「File」>「New」>「Other」>「TensorFlow Lite Model」

  2. 選取 TensorFlow Lite 檔案的位置。請注意,此工具會使用機器學習模型繫結來設定模組的依附元件,並自動將所有必要的依附元件加入 Android 模組的 build.gradle 檔案。

  3. 按一下 Finish 開始匯入程序。匯入完成後,工具會顯示說明模型的畫面,包括模型的輸入和輸出張量。

  4. 如要開始使用模型,請選取 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/ 中加入所有標頭檔案。此外,您需要 FlatBuffersAbseil 的標頭檔案。