Ultralytics YOLO27:

了解如何从 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 配合良好。这种兼容性让你可以更轻松地在各种平台(包括 Web 和移动应用)之间共享和部署模型。TF SavedModel 格式既适用于研究,也适用于生产环境。它提供了统一的模型管理方式,确保模型可以用于任何应用。

TF SavedModel 的主要特性#

以下是使 TF SavedModel 成为 AI 开发者优秀选择的主要特性:

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

  • 易于部署:TF SavedModel 将计算图、训练参数和必要的元数据打包到一个文件包中。无需原始模型构建代码,即可轻松加载它们并用于推理。这使得 TensorFlow 模型在各种生产环境中的部署简单高效。

  • 资源管理:TF SavedModel 支持包含词汇表、嵌入或查找表等外部资源。这些资源与图定义和变量一起存储,确保模型加载时可以使用它们。此特性简化了依赖外部资源的模型的管理和分发。

使用 TF SavedModel 的部署选项#

在深入了解将 YOLO26 模型导出为 TF SavedModel 格式的过程之前,我们先来看看这种格式常见的一些部署场景。

TF SavedModel 为部署机器学习模型提供了多种选项:

  • TensorFlow Serving: TensorFlow Serving 是专为生产环境设计的灵活、高性能服务系统。它原生支持 TF SavedModel,因此你可以轻松地在云平台、本地服务器或边缘设备上部署和提供模型服务。

  • 云平台: Google 云平台 (GCP)Amazon Web Services (AWS)Microsoft Azure等主要云服务提供商,都提供用于部署和运行 TensorFlow 模型(包括 TF SavedModel)的服务。这些服务提供可扩展的托管基础设施,让你可以轻松部署和扩展模型。

  • 移动和嵌入式设备: LiteRT(前身为 TensorFlow Lite)是一种用于在移动设备、嵌入式设备和 IoT 设备上运行机器学习模型的轻量级解决方案,支持将 TF SavedModel 转换为 LiteRT 格式。这样,你就可以在各种设备上部署模型,从智能手机和平板电脑到微控制器和边缘设备。

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

支持的任务#

TF SavedModel 导出支持全部七项 Ultralytics 任务。语义分割和深度估计仅适用于 YOLO26,因为它是唯一配备这些检测头的系列。

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

将 YOLO26 模型导出为 TF SavedModel#

将 YOLO26 模型导出为 TF SavedModel 格式,可以增强模型在各种平台上的适应性并简化部署。

安装#

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

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

有关安装流程的详细说明和最佳实践,请参阅我们的 Ultralytics 安装指南。在为 YOLO26 安装所需软件包时,如果遇到任何困难,请参阅我们的常见问题指南以获取解决方案和建议。

使用方法#

所有 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'
Predict
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 算子集版本。如果未设置,则使用最新的受支持版本。
nmsbool,可选None选择原始输出(None,默认)、嵌入式 NMS(True)或无 NMS 的头部(False)。
batchint1指定导出模型的批量推理大小,或指定导出模型在 predict 模式下并发处理的最大图像数量。
datastrNonedataset YAML 文件的路径,是量化所必需的;分类任务则接受数据集目录或内置数据集名称。如果与 quantize=8 一起使用时未指定,Ultralytics 会为该模型任务选择默认校准数据集。
fractionfloatintlist1.0校准子集可以按比例、图像数量或 [train, val, test] 的比例/数量指定。包含两个项目的列表会保留 test 的完整内容,同时跳过 0
devicestrNone指定导出所使用的设备:CPU(device=cpu)、Apple silicon 上的 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 的作用。

常见问题#

  • 将 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 等工具无缝集成,这些工具对于在各种平台(包括 Web 和移动应用)上部署模型至关重要。
    • 完整封装: 对模型架构、权重和编译信息进行编码,便于共享模型和继续训练。

    如需了解更多优势和部署选项,请查看 Ultralytics YOLO 模型部署选项

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

    • TensorFlow Serving: 非常适合需要可扩展、高性能模型服务的生产环境。
    • 云平台: 支持 Google 云平台 (GCP)、Amazon Web Services (AWS) 和 Microsoft Azure 等主要云服务,以实现可扩展的模型部署。
    • 移动和嵌入式设备: 使用 LiteRT(前身为 TensorFlow Lite)转换 TF SavedModel 后,即可将模型部署到移动设备、IoT 设备和微控制器上。
    • TensorFlow Runtime: 适用于需要低延迟推理和更高性能的 C++ 环境。

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

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

    pip install ultralytics

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

  • TF SavedModel 格式具备以下特性,因此对 AI 开发者很有帮助:

    • 可移植性: 轻松实现模型在各种环境之间的共享和部署。
    • 易于部署: 将计算图、训练参数和元数据封装到一个文件包中,简化加载和推理。
    • 资源管理: 支持词汇表等外部资源,确保模型加载时可以使用这些资源。

    如需进一步了解详情,请查看 TensorFlow 官方文档

评论