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