通过 LiteRT, Android 应用。LiteRT 系统提供预构建的和可自定义的 可在 Android 上快速高效地运行模型的执行环境, 包括硬件加速选项
机器学习模型
LiteRT 使用的 TensorFlow 模型可转换为更小的 可移植且更高效的机器学习模型格式。您可以使用预构建的 或构建自己的 TensorFlow 模型, 并将其转换为 LiteRT 格式。
本页讨论如何使用已构建的机器学习模型, 涵盖构建、训练、测试或转换模型。详细了解 选择、修改、构建和转换机器学习模型, 模型页面中的 LiteRT。
在 Android 上运行模型
在 Android 应用中运行的 LiteRT 模型会接收数据和进程 并根据模型的逻辑生成预测。TensorFlow Lite 模型需要特殊的运行时环境才能执行,并且 传入模型的数据必须采用特定的数据格式,称为 tensor。当模型处理 模型来生成预测结果,这称为推理,它会将预测结果作为新的 张量,并将其传递给 Android 应用,以便其执行操作,例如 向用户显示结果或执行其他业务逻辑。
图 1. Android 中 LiteRT 模型的功能执行流程 。
在功能设计级别,您的 Android 应用需要以下元素才能 运行 LiteRT 模型:
- 用于执行模型的 LiteRT 运行时环境
- 用于将数据转换为张量的模型输入处理程序
- 模型输出处理程序,用于接收输出结果张量并解读它们 作为预测结果
以下部分介绍了如何使用 LiteRT 库和工具 提供这些功能元素。
使用 LiteRT 构建应用
本部分介绍了实现 在您的 Android 应用中实现 LiteRT。您应重点关注 运行时环境和开发库部分。如果 开发自定义模型后,请务必查阅高级开发 路径部分。
运行时环境选项
您可以通过多种方式启用运行时环境以执行模型 。以下是首选选项:
- Google Play 服务运行时中的 LiteRT 环境(推荐)
- 独立的 LiteRT 运行时环境
一般来说,您应该使用 Google Play 提供的运行时环境 因为它比标准环境更加节省空间, 它会动态加载,从而缩减应用大小Google Play 服务还会 自动使用最新的稳定版 LiteRT 运行时,可为您提供更多功能并提高性能。如果 您在不包含 Google Play 服务的设备上提供您的应用, 需要密切管理机器学习运行时环境,那么您应该使用 标准 LiteRT 运行时。此选项会将其他代码捆绑到您的 让您可以在 增加应用的下载大小的成本。
通过向应用中添加 TensorFlow,您可以在自己的 Android 应用中访问这些运行时环境。 将精简版开发库添加到应用开发环境。相关信息 有关如何在应用中使用标准运行时环境的信息,请参见下一部分 部分。
库
您可以通过 Google Play 服务。您可以使用 LiteRT 核心和 support 库。对于 有关使用 LiteRT 库和运行时的编程详情 请参阅 Android 开发工具。
获取模型
在 Android 应用中运行模型需要 LiteRT 格式的模型。您 可以使用预构建的模型,或者通过 TensorFlow 构建一个模型并将其转换为 Lite 格式。如需详细了解如何为您的 Android 应用获取模型,请参阅 LiteRT 模型页面。
处理输入数据
您传入机器学习模型的任何数据都必须是包含特定数据的张量 这种结构通常称为张量的形状。要使用模型处理数据, 应用代码必须从其原生格式转换数据, 或音频数据转换成一个具有模型所需形状的张量。
运行推理
通过模型处理数据以生成预测结果称为 即可进行推断。在 Android 应用中运行推理需要 LiteRT 运行时环境、模型和输入 数据。
模型在特定设备上生成推理的速度 取决于所处理数据的大小、模型的复杂程度以及 可用的计算资源(如内存和 CPU)或专用处理器 称为加速器机器学习模型可以在这些平台上更快运行 专用处理器,例如图形处理单元 (GPU) 和张量 处理单元 (TPU), 代理。如需详细了解代理和硬件加速, 请参阅硬件加速 概览。
处理输出结果
模型以张量形式生成预测结果,而这些结果必须由您的 Android 应用。模型输出 结果可以简单到与单个结果对应的数字(0 = 狗, 1 = 猫,2 = 鸟)用于图片分类,则会产生更复杂的结果, 例如,图片中多个分类对象的多个边界框, 介于 0 到 1 之间的所有预测。
高级开发路径
使用更复杂的自定义 LiteRT 模型时, 需要使用比上述方法更高级的开发方法。 以下部分介绍了执行模型和 如何在 Android 应用中针对 LiteRT 进行开发。
高级运行时环境
除了标准运行时和 Google Play 服务运行时 其他运行时环境 可以与您的 Android 应用搭配使用这类环境最有可能用于 您有一个机器学习模型使用了不受支持的机器学习操作 使用 LiteRT 标准运行时环境。
- LiteRT 的 Flex 运行时
- 定制的 LiteRT 运行时
LiteRT Flex 运行时允许您包含 模型所需的特定运算符。作为一种高级选项 您可以构建适用于 Android 的 LiteRT,在其中添加运营商和 运行 TensorFlow 机器学习模型所需的其他功能。 如需了解详情,请参阅构建适用于 Android 的 LiteRT。
C 和 C++ API
LiteRT 还提供了一个 API,用于使用 C 和 C++ 运行模型。如果您的 应用使用 Android NDK,您应 请考虑使用此 API如果您符合以下情况,也可以考虑使用此 API 希望能够在多个平台之间共享代码更多信息 请参阅开发 工具页面。
基于服务器的模型执行
一般来说,您应该在 Android 设备上的应用中运行模型, 降低延迟并加强用户的数据隐私保护。不过, 在某些情况下,在云服务器上、在设备之外运行模型 解决方案。例如,如果您的大型模型不易压缩, 将其调整为适合用户Android 设备,或可通过 在这些设备上实现合理的性能这种方法还可能会导致 首选的解决方案,前提是模型在各种 是首要任务
Google Cloud 提供了一整套服务来运行 TensorFlow 机器 机器学习模型。如需更多信息,请参阅 Google Cloud 的 AI 和机器 学习产品页面。
自定义模型开发和优化
更高级的开发路径可能包括开发自定义 并优化这些模型以便在 Android 设备上使用。如果您 构建自定义模型时,务必考虑应用量化 方法应用于模型, 内存和处理成本。如需详细了解如何构建 与 LiteRT 搭配使用的高性能模型,请参阅性能最佳 做法。