本页面提供有关构建 TensorFlow 模型的指南,这些模型旨在转换为 TensorFlow Lite 模型格式。您在 TensorFlow Lite 中使用的机器学习 (ML) 模型最初是使用 TensorFlow 核心库和工具构建和训练的。在使用 TensorFlow 核心构建模型后,您可以将其转换为更小、更高效的机器学习模型格式,称为 TensorFlow Lite 模型。
构建您的模型
如果您要为您的特定用例构建自定义模型,您应该从开发和训练 TensorFlow 模型或扩展现有模型开始。
模型设计约束
在开始模型开发过程之前,您应该了解 TensorFlow Lite 模型的约束,并在设计模型时牢记这些约束。
- 有限的计算能力 - 与配备多个 CPU、高内存容量和专用处理器(如 GPU 和 TPU)的完整服务器相比,移动设备和边缘设备的计算能力要有限得多。虽然它们的计算能力和专用硬件兼容性正在不断提高,但您可以在这些设备上有效处理的模型和数据仍然相对有限。
- 模型大小 - 模型的整体复杂性(包括数据预处理逻辑和模型中的层数)会增加模型的内存大小。大型模型的运行速度可能无法接受,或者根本无法容纳在移动设备或边缘设备的可用内存中。
- 数据大小 - 移动设备或边缘设备上可以有效处理的机器学习模型的输入数据大小是有限的。使用大型数据库(如语言库、图像库或视频剪辑库)的模型可能无法容纳在这些设备上,可能需要脱机存储和访问解决方案。
- 支持的 TensorFlow 操作 - TensorFlow Lite 运行时环境支持的机器学习模型操作子集,与常规 TensorFlow 模型相比。在为 TensorFlow Lite 开发模型时,应跟踪模型与 TensorFlow Lite 运行时环境功能的兼容性。
有关构建有效、兼容、高性能 TensorFlow Lite 模型的更多信息,请参阅 性能最佳实践。
模型开发
要构建 TensorFlow Lite 模型,您首先需要使用 TensorFlow 核心库构建模型。TensorFlow 核心库是提供 API 来构建、训练和部署 ML 模型的低级库。
TensorFlow 提供两种方法来实现这一点。您可以开发自己的自定义模型代码,也可以从 TensorFlow 模型花园 中提供的模型实现开始。
模型花园
TensorFlow 模型花园提供了许多用于视觉和自然语言处理 (NLP) 的最先进机器学习 (ML) 模型的实现。您还会发现工作流程工具,让您能够快速配置和在标准数据集上运行这些模型。模型花园中的机器学习模型包含完整的代码,因此您可以使用自己的数据集对其进行测试、训练或重新训练。
无论您是想对知名模型的性能进行基准测试,验证最近发布的研究结果,还是扩展现有模型,模型花园都可以帮助您实现 ML 目标。
自定义模型
如果您的用例超出了模型花园中模型支持的范围,您可以使用像 Keras 这样的高级库来开发您的自定义训练代码。要了解 TensorFlow 的基础知识,请参阅 TensorFlow 指南。要从示例开始,请参阅 TensorFlow 教程概述,其中包含指向初学者到专家级教程的指针。
模型评估
开发完模型后,您应该评估其性能并在最终用户设备上对其进行测试。TensorFlow 提供了几种方法来实现这一点。
- TensorBoard 是一个工具,用于提供机器学习工作流程中所需的测量和可视化。它使您能够跟踪实验指标(如损失和准确率)、可视化模型图、将嵌入投影到低维空间等等。
- 每个支持的平台都提供 基准测试工具,例如 Android 基准测试应用程序和 iOS 基准测试应用程序。使用这些工具来衡量和计算重要性能指标的统计数据。
模型优化
由于 TensorFlow Lite 模型的资源 限制,模型优化可以帮助确保您的模型性能良好并使用更少的计算资源。机器学习模型性能通常是在推理的大小和速度与准确性之间取得平衡。TensorFlow Lite 目前支持通过量化、剪枝和聚类进行优化。有关这些技术的更多详细信息,请参阅 模型优化 主题。TensorFlow 还提供 模型优化工具包,它提供了一个 API 来实现这些技术。