TensorFlow Lite

TensorFlow Lite 是一套工具,通过帮助开发者在移动设备、嵌入式设备和边缘设备上运行其模型,从而实现设备上机器学习。

主要功能

  • 针对设备上机器学习进行了优化,通过解决 5 个关键约束:延迟(没有往返服务器)、隐私(没有个人数据离开设备)、连接性(不需要互联网连接)、大小(减少模型和二进制文件大小)和功耗(高效推理和缺乏网络连接)。
  • 支持多个平台,涵盖 AndroidiOS 设备、嵌入式 Linux 以及 微控制器
  • 支持多种语言,包括 Java、Swift、Objective-C、C++ 和 Python。
  • 高性能,具有 硬件加速模型优化
  • 端到端 示例,用于在多个平台上执行常见的机器学习任务,例如图像分类、目标检测、姿态估计、问答、文本分类等。

开发工作流程

以下指南介绍了工作流程的每个步骤,并提供了指向进一步说明的链接

1. 生成 TensorFlow Lite 模型

TensorFlow Lite 模型以一种特殊的、高效的、可移植的格式表示,称为 FlatBuffers(由 .tflite 文件扩展名标识)。与 TensorFlow 的协议缓冲区模型格式相比,这提供了几个优势,例如减小了大小(代码占用空间小)和更快的推理(数据直接访问,无需额外的解析/解包步骤),这使得 TensorFlow Lite 能够在计算能力和内存资源有限的设备上高效地执行。

TensorFlow Lite 模型可以选择性地包含元数据,其中包含人类可读的模型描述和机器可读的数据,用于在设备上推理期间自动生成预处理和后处理管道。有关更多详细信息,请参阅 添加元数据

您可以通过以下方式生成 TensorFlow Lite 模型

  • 使用现有的 TensorFlow Lite 模型:请参阅 TensorFlow Lite 示例,选择一个现有的模型。模型可能包含或不包含元数据。

  • 创建 TensorFlow Lite 模型:使用 TensorFlow Lite 模型制作器 使用您自己的自定义数据集创建模型。默认情况下,所有模型都包含元数据。

  • 将 TensorFlow 模型转换为 TensorFlow Lite 模型: 使用 TensorFlow Lite 转换器 将 TensorFlow 模型转换为 TensorFlow Lite 模型。在转换过程中,您可以应用 优化,例如 量化,以在精度损失最小或没有损失的情况下减小模型大小和延迟。默认情况下,所有模型都不包含元数据。

2. 运行推理

推理是指在设备上执行 TensorFlow Lite 模型以根据输入数据进行预测的过程。您可以根据模型类型以以下方式运行推理

在 Android 和 iOS 设备上,您可以使用硬件加速来提高性能。在任何平台上,您都可以使用 GPU 代理,在 Android 上,您可以使用 NNAPI 代理(对于较新的设备)或 Hexagon 代理(对于较旧的设备),在 iOS 上,您可以使用 Core ML 代理。要添加对新硬件加速器的支持,您可以 定义自己的代理

入门

您可以根据目标设备参考以下指南

技术限制

  • 并非所有 TensorFlow 模型都可以转换为 TensorFlow Lite 模型,请参考 运算符兼容性

  • 不支持设备上训练,但它在我们的 路线图 上。