了解如何从 YOLO26 导出为 TF SavedModel 格式
部署机器学习模型可能会很有挑战性。然而,使用一种高效且灵活的模型格式可以简化你的工作。TF SavedModel 是一种由 TensorFlow 使用的开源机器学习框架,用于以一致的方式加载机器学习模型。它就像 TensorFlow 模型的“手提箱”,使其易于在不同设备和系统上携带和使用。
学习如何将 Ultralytics YOLO26 模型导出为 TF SavedModel,可以帮助你在不同的平台和环境中轻松部署模型。在本指南中,我们将介绍如何将你的模型转换为 TF SavedModel 格式,从而简化在不同设备上运行模型推理的过程。
为什么要导出为 TF SavedModel?
TensorFlow SavedModel 格式是 Google 开发的 TensorFlow 生态系统的一部分,如下所示。它旨在无缝地保存和序列化 TensorFlow 模型。它封装了模型的完整详细信息,例如架构、权重,甚至编译信息。这使得在不同环境中共享、部署和继续训练变得直接明了。
TF SavedModel 有一个关键优势:兼容性。它能与 TensorFlow Serving、TensorFlow Lite 和 TensorFlow.js 良好协作。这种兼容性使得在包括 Web 和移动应用程序在内的各种平台上共享和部署模型变得更加容易。TF SavedModel 格式对研究和生产都很有用。它提供了一种统一的方式来管理你的模型,确保它们为任何应用程序做好准备。
TF SavedModel 的主要特性
以下是使 TF SavedModel 成为 AI 开发者的绝佳选择的关键特性:
-
可移植性:TF SavedModel 提供了一种语言无关、可恢复、封闭式的序列化格式。它们使更高级的系统和工具能够生产、消费和转换 TensorFlow 模型。SavedModels 可以轻松地在不同平台和环境中共享和部署。
-
易于部署:TF SavedModel 将计算图、训练好的参数和必要的元数据捆绑到一个包中。它们可以轻松加载并用于推理,而无需构建模型时的原始代码。这使得 TensorFlow 模型在各种生产环境中的部署变得直接且高效。
-
资产管理:TF SavedModel 支持包含外部资产,例如词汇表、嵌入或查找表。这些资产与图定义和变量一起存储,确保在加载模型时可用。此特性简化了依赖外部资源的模型的管理和分发。
TF SavedModel 的部署选项
在深入了解将 YOLO26 模型导出为 TF SavedModel 格式的过程之前,让我们探索一些使用此格式的典型部署场景。
TF SavedModel 提供了多种部署机器学习模型的选项:
-
TensorFlow Serving: TensorFlow Serving 是一个专为生产环境设计的灵活、高性能服务系统。它原生支持 TF SavedModels,使得在云平台、本地服务器或边缘设备上轻松部署和提供模型服务成为可能。
-
云平台: Google Cloud Platform (GCP)、Amazon Web Services (AWS) 和 Microsoft Azure 等主流云提供商提供用于部署和运行 TensorFlow 模型(包括 TF SavedModels)的服务。这些服务提供可扩展且托管的基础设施,让你能够轻松部署和扩展模型。
-
移动和嵌入式设备: TensorFlow Lite 是一种用于在移动、嵌入式和 IoT 设备上运行机器学习模型的轻量级解决方案,它支持将 TF SavedModels 转换为 TensorFlow Lite 格式。这使你能够将模型部署在从智能手机和平板电脑到微控制器和边缘设备的广泛设备上。
-
TensorFlow Runtime: TensorFlow Runtime (
tfrt) 是一个用于执行 TensorFlow 图的高性能运行时。它为在 C++ 环境中加载和运行 TF SavedModels 提供了更底层的 API。与标准的 TensorFlow 运行时相比,TensorFlow Runtime 提供了更好的性能。它适用于需要低延迟推理且与现有 C++ 代码库紧密集成的部署场景。
将 YOLO26 模型导出为 TF SavedModel
通过将 YOLO26 模型导出为 TF SavedModel 格式,你可以增强其在各种平台上的适应性和部署便利性。
安装
要安装所需的包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关安装过程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。如果在安装 YOLO26 所需的软件包时遇到任何困难,请查阅我们的 常见问题指南 获取解决方案和建议。
使用方法
所有 Ultralytics YOLO26 模型 均设计为支持直接开箱导出,使你能够轻松将其集成到你首选的部署工作流中。你可以查看支持的导出格式和配置选项的完整列表,为你的应用选择最佳设置。
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'
# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolo26n_saved_model")
# Run inference
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")导出参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'saved_model' | 导出模型的目标格式,定义与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入的所需图像尺寸。可以是正方形图像的整数,也可以是特定维度的元组 (height, width)。 |
keras | bool | False | 启用导出为 Keras 格式,提供与 TensorFlow Serving 和 API 的兼容性。 |
int8 | bool | False | 激活 INT8 量化,进一步压缩模型并以极小的准确性损失加快推理速度,主要适用于边缘设备。 |
nms | bool | False | 添加非极大值抑制(NMS),这对于准确且高效的检测后处理至关重要。 |
batch | int | 1 | 指定导出模型的批量推理大小,或者导出模型在 predict 模式下将同时处理的最大图像数量。 |
data | str | 'coco8.yaml' | 数据集配置文件的路径(默认:coco8.yaml),这对量化至关重要。 |
fraction | float | 1.0 | 指定用于 INT8 量化校准的数据集比例。允许在完整数据集的子集上进行校准,这对于实验或资源受限时非常有用。如果在启用 INT8 时未指定,将使用完整数据集。 |
device | str | None | 指定导出的设备:CPU (device=cpu),Apple 芯片的 MPS (device=mps)。 |
有关导出过程的更多详细信息,请访问 Ultralytics 导出文档页面。
部署导出的 YOLO26 TF SavedModel 模型
现在你已经将 YOLO26 模型导出为 TF SavedModel 格式,下一步就是部署它。运行 TF SavedModel 模型的主要且推荐的第一步是使用 YOLO("yolo26n_saved_model/") 方法,正如之前的使用代码片段所示。
然而,若要获取有关部署 TF SavedModel 模型的深入说明,请查看以下资源:
-
TensorFlow Serving:这是关于如何使用 TensorFlow Serving 部署 TF SavedModel 模型的开发者文档。
-
在 Node.js 中运行 TensorFlow SavedModel:一篇关于无需转换直接在 Node.js 中运行 TensorFlow SavedModel 的 TensorFlow 博客文章。
-
在云端部署:一篇关于在 Cloud AI Platform 上部署 TensorFlow SavedModel 模型的 TensorFlow 博客文章。
总结
在本指南中,我们探讨了如何将 Ultralytics YOLO26 模型导出为 TF SavedModel 格式。通过导出为 TF SavedModel,你可以获得在各种平台上优化、部署和扩展 YOLO26 模型的灵活性。
有关用法的更多详细信息,请访问 TF SavedModel 官方文档。
欲了解更多有关将 Ultralytics YOLO26 与其他平台和框架集成的资讯,请务必查看我们的集成指南页面。它包含了丰富的资源,旨在帮助你在项目中充分利用 YOLO26。
常见问题 (FAQ)
我该如何将 Ultralytics YOLO 模型导出为 TensorFlow SavedModel 格式?
将 Ultralytics YOLO 模型导出为 TensorFlow SavedModel 格式非常简单。你可以使用 Python 或 CLI 来实现:
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo26n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")更多详细信息请参考 Ultralytics 导出文档。
我为什么要使用 TensorFlow SavedModel 格式?
TensorFlow SavedModel 格式为模型部署提供了几个优势:
- 可移植性: 它提供了一种语言无关的格式,使得在不同环境中共享和部署模型变得容易。
- 兼容性: 与 TensorFlow Serving、TensorFlow Lite 和 TensorFlow.js 等工具无缝集成,这些工具对于在包括 Web 和移动应用程序在内的各种平台上部署模型至关重要。
- 完整封装: 编码模型架构、权重和编译信息,允许直接进行共享和继续训练。
更多优势和部署选项,请查看 Ultralytics YOLO 模型部署选项。
TF SavedModel 的典型部署场景有哪些?
TF SavedModel 可部署在多种环境中,包括:
- TensorFlow Serving: 非常适合需要可扩展且高性能模型服务的生产环境。
- 云平台: 支持 Google Cloud Platform (GCP)、Amazon Web Services (AWS) 和 Microsoft Azure 等主流云服务,用于可扩展的模型部署。
- 移动和嵌入式设备: 使用 TensorFlow Lite 转换 TF SavedModels 允许在移动设备、IoT 设备和微控制器上进行部署。
- TensorFlow Runtime: 适用于需要低延迟推理且性能更好的 C++ 环境。
有关详细的部署选项,请访问有关部署 TensorFlow 模型的官方指南。
我该如何安装导出 YOLO26 模型所需的软件包?
要导出 YOLO26 模型,你需要安装 ultralytics 软件包。在你的终端中运行以下命令:
pip install ultralytics有关更详细的安装说明和最佳实践,请参考我们的 Ultralytics 安装指南。如果遇到任何问题,请查阅我们的 常见问题指南。
TensorFlow SavedModel 格式的关键特性是什么?
由于以下特性,TF SavedModel 格式对 AI 开发者非常有益:
- 可移植性: 允许在各种环境中轻松共享和部署。
- 易于部署: 将计算图、训练好的参数和元数据封装到一个包中,这简化了加载和推理。
- 资产管理: 支持词汇表等外部资产,确保模型加载时它们可用。
有关更多详细信息,请探索 TensorFlow 官方文档。