YOLO Vision 2026:

了解如何从 YOLO26 导出到 TF SavedModel 格式#

部署机器学习模型可能具有挑战性。不过,使用高效且灵活的模型格式可以简化工作。TF SavedModel 是 TensorFlow 使用的一个开源机器学习框架,用于以一致的方式加载机器学习模型。它就像是 TensorFlow 模型的手提箱,方便在不同的设备和系统上携带和使用。

学习如何从Ultralytics YOLO26模型导出为 TF SavedModel,能帮你轻松在不同平台和环境中部署模型。在本指南中,我们将带你了解如何将模型转换为 TF SavedModel 格式,从而简化在各种设备上运行模型推理的过程。

为什么要导出到 TF SavedModel?#

TensorFlow SavedModel 格式是 Google 开发的 TensorFlow 生态系统的一部分,如下所示。它旨在无缝地保存和序列化 TensorFlow 模型。它封装了模型的完整细节,如架构、权重,甚至是编译信息。这使得在不同环境之间共享、部署和继续训练变得直接。

TensorFlow SavedModel export format structure

TF SavedModel 的一个关键优势是其兼容性。它能与TensorFlow ServingLiteRT(原 TensorFlow Lite)以及 TensorFlow.js 良好配合。这种兼容性使得在包括网页和移动应用在内的各种平台上共享和部署模型变得更加容易。TF SavedModel 格式对研究和生产都很有用。它提供了一种统一的方式来管理模型,确保模型能够适用于任何应用。

TF SavedModel 的主要特性#

以下是使 TF SavedModel 成为 AI 开发者的绝佳选择的关键特性:

  • 可移植性:TF SavedModel 提供了一种语言无关、可恢复、封闭的序列化格式。它们使更高级的系统和工具能够生成、使用和转换 TensorFlow 模型。SavedModel 可以轻松地在不同平台和环境之间共享和部署。

  • 部署简便性: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)的服务。这些服务提供可扩展且托管的基础设施,让你能够轻松部署和扩展模型。

  • 移动和嵌入式设备LiteRT(原 TensorFlow Lite)是用于在移动、嵌入式和物联网设备上运行机器学习模型的轻量级解决方案,它支持将 TF SavedModels 转换为 LiteRT 格式。这使你能够将模型部署在从智能手机、平板电脑到微控制器和边缘设备的广泛设备上。

  • TensorFlow Runtime:TensorFlow Runtime (tfrt) 是一个用于执行 TensorFlow 图的高性能运行时。它为在 C++ 环境中加载和运行 TF SavedModels 提供了更底层的 API。相比标准的 TensorFlow 运行时,TensorFlow Runtime 提供了更好的性能。它适用于需要低延迟推理以及与现有 C++ 代码库紧密集成的部署场景。

支持的任务#

TF SavedModel 导出支持所有七个 Ultralytics 任务。语义分割和深度估计仅在 YOLO26 中可用,这是唯一提供这些输出层的系列。

任务YOLOv8YOLO11YOLO26
检测
分割
语义
深度
分类
Pose
OBB

将 YOLO26 模型导出到 TF SavedModel#

通过将 YOLO26 模型导出到 TF SavedModel 格式,你增强了它们在各种平台上的适应性和部署简便性。

安装#

要安装所需的软件包,请运行:

安装
# Install the required package for YOLO26
pip install ultralytics

有关安装过程的详细说明和最佳实践,请查阅我们的 Ultralytics Installation guide。在安装 YOLO26 所需的软件包时,如果遇到任何困难,请参考我们的 Common Issues guide 获取解决方案和提示。

用法#

所有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")

导出参数#

参数类型默认值描述
formatstr'saved_model'导出模型的目标格式,定义了与各种部署环境的兼容性。
imgszinttuple640模型输入的所需图像大小。对于正方形图像可以是整数,或者对于特定尺寸可以是元组 (height, width)
kerasboolFalse支持导出为 Keras 格式,提供与 TensorFlow Serving 和 API 的兼容性。
quantizeintstrNone量化精度:8(INT8/PTQ;需要校准 data/fraction)或 32/未设置(FP32)。SavedModel 导出不支持 FP16。替代了已弃用的 int8 标志。
opsetintNone为中间 ONNX 图指定 ONNX opset 版本。如果未设置,则使用支持的最新版本。
nmsboolFalse添加非极大值抑制 (NMS),这是准确高效的检测后处理所必需的。
batchint1指定导出模型的批处理推理大小,或导出的模型在 predict 模式下同时处理的最大图像数量。
datastrNone数据集 YAML 的路径,对量化至关重要;分类任务则需要数据集目录或内置数据集名称。如果在使用 quantize=8 时省略此项,Ultralytics 将为模型任务选择默认的校准数据集。
fractionfloatintlist1.0校准子集,可作为比例、图像数量或 [train, val, test] 比例/数量。两项列表使 test 保持完整,而 0 则会跳过它。
devicestrNone指定用于导出的设备: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 博客文章。

  • 在云端部署:一篇关于在云 AI 平台上部署 TensorFlow SavedModel 模型的 TensorFlow 博客文章。

总结#

在本指南中,我们探索了如何将 Ultralytics YOLO26 模型导出到 TF SavedModel 格式。通过导出到 TF SavedModel,你获得了在广泛的平台上优化、部署和扩展 YOLO26 模型的灵活性。

有关用法的更多详细信息,请访问TF SavedModel 官方文档

有关将 Ultralytics YOLO26 与其他平台和框架集成的更多信息,别忘了查看我们的集成指南页面。这里包含丰富的资源,可帮助你在项目中充分利用 YOLO26。

常见问题解答#

  • 将 Ultralytics YOLO 模型导出为 TensorFlow SavedModel 格式非常简单。你可以使用 Python 或 CLI 来实现:

    将 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'
    
    # 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 Serving、LiteRT 和 TensorFlow.js 等工具无缝集成,这些工具对于在包括网页和移动应用在内的各种平台上部署模型至关重要。
    • 完全封装: 对模型架构、权重和编译信息进行编码,从而实现简单的共享和继续训练。

    有关更多优势和部署选项,请查看Ultralytics YOLO 模型部署选项

  • TF SavedModel 可以部署在各种环境中,包括:

    • TensorFlow Serving: 非常适合需要可扩展且高性能模型服务的生产环境。
    • 云平台: 支持主流云服务,如 Google Cloud Platform (GCP)、Amazon Web Services (AWS) 和 Microsoft Azure,以实现可扩展的模型部署。
    • 移动和嵌入式设备:使用LiteRT(原 TensorFlow Lite)转换 TF SavedModels 允许部署在移动设备、物联网设备和微控制器上。
    • TensorFlow Runtime: 适用于需要低延迟推理和更高性能的 C++ 环境。

    有关详细的部署选项,请访问关于部署 TensorFlow 模型的官方指南。

  • 要导出 YOLO26 模型,你需要安装 ultralytics 软件包。在终端中运行以下命令:

    pip install ultralytics

    有关更详细的安装说明和最佳实践,请参考我们的Ultralytics 安装指南。如果遇到任何问题,请查阅我们的常见问题指南

  • TF SavedModel 格式由于以下特性,对 AI 开发者非常有利:

    • 可移植性: 允许在各种环境中轻松共享和部署。
    • 部署简便性: 将计算图、训练参数和元数据封装到一个包中,从而简化了加载和推理过程。
    • 资产管理: 支持词汇表等外部资产,确保在加载模型时它们是可用的。

    有关更多详情,请探索官方 TensorFlow 文档

评论