YOLO Vision 2026:

如何将 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 中可用,这是唯一带有这些头部的模型系列。姿态模型可以导出,但 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 格式支持 ExportPredictValidate 模式,不过姿态模型目前仅支持导出。导出模型,然后加载导出的模型以运行推理或验证其准确率。

导出
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TF GraphDef format
model.export(format="pb")  # creates 'yolo26n.pb'
预测
from ultralytics import YOLO

# Load the exported TF GraphDef model
model = YOLO("yolo26n.pb")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
验证
from ultralytics import YOLO

# Load the exported TF GraphDef model
model = YOLO("yolo26n.pb")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

导出参数#

参数类型默认值描述
formatstr'pb'导出模型的目标格式,定义了与各种部署环境的兼容性。
imgszinttuple640模型输入的期望图像尺寸。可以是一个用于正方形图像的整数,或者是一个用于特定尺寸的元组 (height, width)
quantizeintstrNone修复了 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 与其他平台和框架集成的更多信息,请参阅我们的 集成指南页面

常见问题解答#

如何将 YOLO26 模型导出为 TF GraphDef 格式?#

Ultralytics YOLO26 模型可以无缝导出为 TensorFlow GraphDef (TF GraphDef) 格式。此格式提供了序列化的、独立于平台的模型表示,非常适合在移动设备和 Web 等多种环境中部署。要将 YOLO26 模型导出为 TF GraphDef,请按照以下步骤操作:

用法
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TF GraphDef format
model.export(format="pb")  # creates 'yolo26n.pb'

# Load the exported TF GraphDef model
tf_graphdef_model = YOLO("yolo26n.pb")

# Run inference
results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")

有关不同导出选项的更多信息,请访问 Ultralytics 模型导出文档

使用 TF GraphDef 进行 YOLO26 模型部署有哪些好处?#

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

  1. 平台独立性:TF GraphDef 提供了一种与平台无关的格式,允许模型部署在包括移动设备和 Web 浏览器在内的各种环境中。
  2. 优化:该格式支持多种优化,如常量折叠、量化和图转换,这些优化可提高执行效率并减少内存占用。
  3. 硬件加速:TF GraphDef 格式的模型可以利用 GPU、TPU 和 AI 芯片等硬件加速器来获得性能提升。

在我们的文档中阅读有关 TF GraphDef 部分 的更多益处。

为什么我应该使用 Ultralytics YOLO26 而不是其他 目标检测 模型?#

与其他模型(如 YOLOv5 和 YOLOv7)相比,Ultralytics YOLO26 具有众多优势。一些关键益处包括:

  1. State-of-the-Art Performance: YOLO26 提供出色的速度和accuracy,适用于实时object detectioninstance segmentationsemantic segmentationclassification
  2. 易于使用:具有用于模型训练、验证、预测和导出的用户友好型 API,初学者和专家都能轻松使用。
  3. 广泛的兼容性:支持包括 ONNX、TensorRT、CoreML 和 TensorFlow 在内的多种导出格式,提供了灵活的部署选项。

在我们的 YOLO26 简介 中探索更多详细信息。

如何使用 TF GraphDef 在专用硬件上部署 YOLO26 模型?#

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

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

查看 部署选项 部分以获取详细信息。

在哪里可以找到导出 YOLO26 模型时常见问题的解决方案?#

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

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

评论