Ultralytics YOLO27:
Get Started

如何将 YOLO26 导出为 TF GraphDef 以进行部署#

在不同环境中部署 YOLO26 等前沿计算机视觉模型时,你可能会遇到兼容性问题。Google 的 TensorFlow GraphDef(简称 TF GraphDef)通过提供模型的序列化、平台无关表示形式,解决了这一问题。使用 TF GraphDef 模型格式,你可以在无法使用完整 TensorFlow 生态系统的环境中部署 YOLO26 模型,例如移动设备或专用硬件上。

本指南将逐步介绍如何将你的 Ultralytics YOLO26 模型导出为 TF GraphDef 格式。通过转换模型,你可以简化部署流程,并在更多应用和平台中使用 YOLO26 的计算机视觉能力。

TensorFlow GraphDef model serialization format

为什么要导出为 TF GraphDef?#

TF GraphDef 是 Google 开发的 TensorFlow 生态系统中的强大组件,可用于优化和部署 YOLO26 等模型。导出为 TF GraphDef 能让你将模型从研究阶段应用到实际场景中。它可以让模型在没有完整 TensorFlow 框架的环境中运行。

GraphDef 格式将模型表示为序列化的计算图。这支持多种优化技术,例如常量折叠、量化和图转换。这些优化能够确保高效执行、降低内存使用量并加快推理速度。

GraphDef 模型可以使用 GPU、TPU 和 AI 芯片等硬件加速器,为 YOLO26 推理流程带来显著的性能提升。TF GraphDef 格式会将模型及其依赖项打包为一个独立的软件包,从而简化部署以及与不同系统的集成。

TF GraphDef 模型的主要特性#

TF GraphDef 提供了独特的功能,可简化模型部署和优化。

以下是它的主要特性:

  • 模型序列化:TF GraphDef 提供了一种以平台无关格式序列化和存储 TensorFlow 模型的方法。借助这种序列化表示形式,你无需原始 Python 代码库即可加载并运行模型,从而简化部署。

  • 图优化:TF GraphDef 支持优化计算图。这些优化可以通过简化执行流程、减少冗余以及针对特定硬件调整操作来提升性能。

  • 部署灵活性:导出为 GraphDef 格式的模型可用于各种环境,包括资源受限设备、Web 浏览器和配备专用硬件的系统。这为更广泛地部署 TensorFlow 模型提供了可能。

  • 面向生产环境:GraphDef 专为生产环境部署而设计。它支持高效执行、序列化功能和符合实际应用场景的优化。

使用 TF GraphDef 的部署选项#

在深入介绍将 YOLO26 模型导出为 TF GraphDef 的流程之前,我们先来看看这种格式的一些典型部署场景。

下面介绍如何在各种平台上高效地使用 TF GraphDef 进行部署。

  • TensorFlow Serving:这个框架专为在生产环境中部署 TensorFlow 模型而设计。TensorFlow Serving 提供模型管理、版本控制以及大规模高效提供模型服务所需的基础设施。借助它,你可以轻松将基于 GraphDef 的模型集成到生产环境中的 Web 服务或 API 中。

  • 移动和嵌入式设备:借助 LiteRT 等工具,你可以将 TF GraphDef 模型转换为针对智能手机、平板电脑和各类嵌入式设备优化的格式。之后,你可以在设备上运行模型推理,即在本地执行模型,通常能够提升性能并支持离线使用。

  • Web 浏览器:TensorFlow.js 支持直接在 Web 浏览器中部署 TF GraphDef 模型。借助 JavaScript,你可以使用 YOLO26 的能力,在客户端构建实时目标检测应用。

  • 专用硬件:TF GraphDef 的平台无关特性使其能够适配定制硬件,例如加速器和 TPU(张量处理单元)。这些设备可以提升计算密集型模型的性能。

支持的任务#

TF GraphDef 导出支持 Ultralytics 七种任务中的六种。语义分割和深度估计仅适用于 YOLO26,因为只有 YOLO26 系列包含这两种任务头。姿势模型可以导出,但目前 Ultralytics 尚不支持对 GraphDef 姿势模型进行推理。

任务YOLOv8YOLO11YOLO26
检测✅✅✅
分割✅✅✅
语义分割❌❌✅
深度估计❌❌✅
分类✅✅✅
姿态✅✅✅
OBB❌❌❌

将 YOLO26 模型导出为 TF GraphDef#

你可以将 YOLO26 模型转换为与各种系统兼容的 TF GraphDef 格式,从而提升模型在不同平台上的性能。

安装#

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

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

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

用法#

所有 Ultralytics YOLO26 模型均支持开箱即用的导出,便于你将模型集成到首选的部署工作流中。你可以查看支持的导出格式和配置选项的完整列表,为你的应用选择最佳配置。

TF GraphDef 格式支持 Export、Predict 和 Validate 模式,但目前姿势模型仅支持导出。导出模型后,加载导出的模型即可运行推理或验证其准确率。

导出
from ultralytics import YOLO

# 加载 YOLO26 模型
model = YOLO("yolo26n.pt")

# 将模型导出为 TF GraphDef 格式
model.export(format="pb")  # 创建 'yolo26n.pb'
预测
from ultralytics import YOLO

# 加载导出的 TF GraphDef 模型
model = YOLO("yolo26n.pb")

# 运行推理
results = model("https://ultralytics.com/images/bus.jpg")
验证
from ultralytics import YOLO

# 加载导出的 TF GraphDef 模型
model = YOLO("yolo26n.pb")

# 在 COCO8 数据集上验证准确率
metrics = model.val(data="coco8.yaml")

导出参数#

参数类型默认值说明
formatstr'pb'导出模型的目标格式,用于定义与各种部署环境的兼容性。
imgszint 或 tuple640模型输入所需的图像尺寸。正方形图像可使用整数;若要指定具体尺寸,则可使用元组 (height, width)。
quantizeint 或 strNone导出精度固定为 FP32。GraphDef 不支持在导出时转换为 FP16、INT8 或 W8A16 精度。
opsetintNone指定中间 ONNX 图的 ONNX opset 版本。若未设置,则使用最新的受支持版本。
batchint1指定导出模型的批量推理大小,或导出模型在 predict 模式下可同时处理的最大图像数。
devicestrNone指定导出设备:CPU (device=cpu),Apple 芯片上的 MPS (device=mps)。

有关导出流程的更多详情,请访问 Ultralytics 导出文档页面。

部署导出的 YOLO26 TF GraphDef 模型#

将 YOLO26 模型导出为 TF GraphDef 格式后,下一步就是部署。运行 TF GraphDef 模型的首选且推荐的第一步,是使用 YOLO("model.pb") 方法,如前面的用法代码片段所示。

如需了解有关部署 TF GraphDef 模型的更多信息,请参阅以下资源:

  • TensorFlow Serving:TensorFlow Serving 指南将介绍如何在生产环境中高效部署和提供机器学习模型服务。

  • TensorFlow Lite:此页面介绍如何将机器学习模型转换为适用于 TensorFlow Lite 设备端推理的优化格式。

  • TensorFlow.js:模型转换指南将介绍如何将 TensorFlow 或 Keras 模型转换为 TensorFlow.js 格式,以便在 Web 应用中使用。

总结#

本指南介绍了如何将 Ultralytics YOLO26 模型导出为 TF GraphDef 格式。这样,你就可以灵活地在不同环境中部署优化后的 YOLO26 模型。

如需了解更多用法详情,请访问 TF GraphDef 官方文档。

如需了解将 Ultralytics YOLO26 与其他平台和框架集成的更多信息,请参阅我们的集成指南页面。

常见问题#

  • Ultralytics YOLO26 模型可以轻松导出为 TensorFlow GraphDef(TF GraphDef)格式。该格式以序列化且平台无关的形式表示模型,适合在移动端和 Web 等不同环境中部署。按照以下步骤将 YOLO26 模型导出为 TF GraphDef:

    用法
    from ultralytics import YOLO
    
    # 加载 YOLO26 模型
    model = YOLO("yolo26n.pt")
    
    # 将模型导出为 TF GraphDef 格式
    model.export(format="pb")  # 创建 'yolo26n.pb'
    
    # 加载导出的 TF GraphDef 模型
    tf_graphdef_model = YOLO("yolo26n.pb")
    
    # 运行推理
    results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")

    如需了解不同的导出选项,请访问 Ultralytics 模型导出文档。

  • 将 YOLO26 模型导出为 TF GraphDef 格式有多项优势,包括:

    1. 平台无关性:TF GraphDef 提供平台无关的格式,因此模型可以部署在各种环境中,包括移动设备和 Web 浏览器。
    2. 优化:该格式支持多种优化,例如常量折叠、量化和图转换,可提升执行效率并降低内存使用量。
    3. 硬件加速:TF GraphDef 格式的模型可以利用 GPU、TPU 和 AI 芯片等硬件加速器来提升性能。

    如需详细了解相关优势,请阅读文档中的 TF GraphDef 章节。

  • 与 YOLOv5 和 YOLOv7 等其他模型相比,Ultralytics YOLO26 具有诸多优势。主要优势包括:

    1. 先进性能:YOLO26 在实时目标检测、实例分割、语义分割和分类任务中兼具出色的速度和准确率。
    2. 易于使用:提供易用的 API,支持模型训练、验证、预测和导出,初学者和专家都能轻松上手。
    3. 兼容性广:支持 ONNX、TensorRT、CoreML 和 TensorFlow 等多种导出格式,提供灵活的部署选项。

    在我们的 YOLO26 介绍中了解更多详情。

  • 将 YOLO26 模型导出为 TF GraphDef 格式后,你可以在各种专用硬件平台上部署模型。典型的部署场景包括:

    • TensorFlow Serving:使用 TensorFlow Serving 在生产环境中大规模部署模型。它支持模型管理和高效的模型服务。
    • 移动设备:将 TF GraphDef 模型转换为针对移动和嵌入式设备优化的 TensorFlow Lite 格式,以支持设备端推理。
    • Web 浏览器:使用 TensorFlow.js 在 Web 应用中部署模型,以便在客户端进行推理。
    • AI 加速器:利用 TPU 和定制 AI 芯片加速推理。

    如需详细信息,请参阅部署选项章节。

  • 针对 YOLO26 模型导出的常见问题,Ultralytics 提供了全面的指南和资源。如果你在安装或模型导出过程中遇到问题,请参阅:

    这些资源应该能帮助你解决大多数与 YOLO26 模型导出和部署相关的问题。

评论