如何将 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 中的顺畅方式。

  • 移动和嵌入式设备: 利用 TensorFlow Lite 等工具,你可以将 TF GraphDef 模型转换为针对智能手机、平板电脑和各种嵌入式设备优化的格式。然后,你的模型可用于端侧推理(在本地执行),通常能带来性能提升并实现离线功能。

  • Web 浏览器: TensorFlow.js 能够直接在 Web 浏览器中部署 TF GraphDef 模型。它为通过 JavaScript 利用 YOLO26 功能在客户端运行的实时对象检测应用铺平了道路。

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

将 YOLO26 模型导出为 TF GraphDef

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

安装

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

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

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

使用方法

所有 Ultralytics YOLO26 模型 均设计为支持直接开箱导出,使你能够轻松将其集成到你首选的部署工作流中。你可以查看支持的导出格式和配置选项的完整列表,为你的应用选择最佳设置。

使用方法
from ultralytics import YOLO

# Load the 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")

导出参数

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

常见问题 (FAQ)

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

Ultralytics YOLO26 模型可以无缝导出为 TensorFlow GraphDef (TF GraphDef) 格式。这种格式提供了序列化的、与平台无关的模型表示,非常适合在移动和 Web 等各种环境中进行部署。要将 YOLO26 模型导出为 TF GraphDef,请遵循以下步骤:

使用方法
from ultralytics import YOLO

# Load the 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. 最先进的性能:YOLO26 为实时对象检测、分割和分类提供了卓越的速度和 准确性
  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 模型导出和部署相关的问题。

评论