LiteRT 提供多种用于将模型集成到 Android 的工具 。本页面介绍了通过 Google Cloud 控制台 Kotlin、Java 和 C++,以及对 Android Studio。
使用 Kotlin 和 Java 进行构建的工具
以下部分介绍了使用 Kotlin 和 Java 语言
LiteRT 库
在您的 Android 应用中使用 LiteRT 库,方法是添加托管在 MavenCentral 添加到开发项目中。
您可以在 build.gradle
依赖项中进行指定,如下所示:
dependencies {
...
implementation 'com.google.ai.edge.litert:+'
}
repositories {
...
google()
}
如果您使用夜间快照,请务必添加 Sonatype 快照 代码库添加到您的项目中。
此 AAR 文件中包含适用于所有 Android ABI)的信息。您可以将 应用的二进制文件。
除非您以特定硬件为目标,否则应省略 x86
、x86_64
和 arm32
ABI。您可以使用以下 Gradle 对其进行配置
配置。具体包括 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 返回模型信息屏幕,
Lite 模型,位于 Android Studio 中的 ml
目录下。如需详细了解
使用 Android Studio 的模态绑定功能,请参阅 Android Studio
发布
备注。
如需简要了解如何在 Android Studio 中使用模型绑定,请参阅代码示例
说明。
使用 C 和 C++ 进行构建的工具
适用于 LiteRT 的 C 和 C++ 库主要用于 使用 Android 原生开发套件 (NDK) 来构建应用的开发者。 如果您使用 NDK 构建应用,可通过 C++ 使用 LiteRT,方法有以下两种:
LiteRT C API
对于使用 NDK 的开发者,建议使用此方法。
下载托管在
MavenCentral
将文件重命名为 tensorflow-lite-*.zip
,然后进行解压缩。您必须将四个选项
headers/tensorflow/lite/
和 headers/tensorflow/lite/c/
中的头文件
文件夹和相关的 libtensorflowlite_jni.so
动态库(位于
jni/
文件夹。
c_api.h
头文件包含有关如何使用 LiteRT C 的基本文档
API。
LiteRT C++ API
如果您想通过 C++ API 使用 LiteRT, 库:
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。