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,有助于将原始输入数据转换为模型所需的形式,并解释模型的输出,从而减少所需的样板代码量。
它支持输入和输出的常用数据格式,包括图片和数组。它还提供了一些前处理单元和后处理单元,用于执行图片大小调整和剪裁等任务。
通过添加 MavenCentral 中托管的 TensorFlow Lite 支持库 AAR,在 Android 应用中使用支持库。
您可以在 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,然后复制代码并将其粘贴到示例代码部分中。
在 Android Studio 中的 ml
目录下,双击 TensorFlow Lite 模型即可返回模型信息屏幕。如需详细了解如何使用 Android Studio 的 Modle 绑定功能,请参阅 Android Studio 版本说明。
如需简要了解如何在 Android Studio 中使用模型绑定,请参阅代码示例instructions。
使用 C 和 C++ 进行构建的工具
TensorFlow Lite 的 C 库和 C++ 库主要面向使用 Android 原生开发套件 (NDK) 构建应用的开发者。如果您使用 NDK 构建应用,有两种方式可通过 C++ 使用 TFLite:
TFLite C API
使用此 API 是为 NDK 开发者推荐的方法。
下载 MavenCentral 中托管的 TensorFlow Lite AAR 文件,将其重命名为 tensorflow-lite-*.zip
并解压缩。您必须在 NDK 项目的 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 的头文件。