跳转至内容

如何从 YOLO11 导出到 TF GraphDef 以进行部署

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

在本指南中,我们将逐步引导您完成将 Ultralytics YOLO11 模型导出为 TF GraphDef 模型格式的过程。通过转换您的模型,您可以简化部署并在更广泛的应用程序和平台上使用 YOLO11 的计算机视觉功能。

TensorFlow GraphDef

为什么要导出到 TF GraphDef?

TF GraphDef 是 TensorFlow 生态系统的一个强大组件,由 Google 开发。它可用于优化和部署像 YOLO11 这样的模型。导出到 TF GraphDef 可以让我们将模型从研究转移到实际应用中。它允许模型在没有完整 TensorFlow 框架的环境中运行。

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

GraphDef 模型可以使用硬件加速器,例如 GPU、TPU 和 AI 芯片,从而为 YOLO11 推理管线释放显著的性能提升。TF GraphDef 格式创建了一个包含模型及其依赖项的独立软件包,从而简化了部署和集成到各种系统中。

TF GraphDef 模型的主要特性

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

以下是其主要特性的概览:

  • 模型序列化: TF GraphDef 提供了一种以平台无关的格式序列化和存储 TensorFlow 模型的方法。 这种序列化表示允许您加载和执行模型,而无需原始 python 代码库,从而简化了部署。

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

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

  • 专注于生产: GraphDef 专为生产部署而设计。它支持高效执行、序列化功能以及与实际用例相符的优化。

TF GraphDef 的部署选项

在深入研究将 YOLO11 模型导出到 TF GraphDef 的过程之前,让我们看看使用此格式的一些典型部署情况。

以下是如何在各种平台上高效部署 TF GraphDef:

  • TensorFlow Serving: 此框架旨在生产环境中部署 TensorFlow 模型。TensorFlow Serving 提供模型管理、版本控制以及用于大规模高效模型服务的基础设施。这是一种将基于 GraphDef 的模型无缝集成到生产 Web 服务或 API 中的方法。

  • 移动和嵌入式设备: 借助 TensorFlow Lite 等工具,您可以将 TF GraphDef 模型转换为针对智能手机、平板电脑和各种嵌入式设备优化的格式。然后,您的模型可以用于设备端推理,其中执行在本地完成,通常提供性能提升和离线功能。

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

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

将 YOLO11 模型导出到 TF GraphDef

您可以将您的 YOLO11 对象检测模型转换为 TF GraphDef 格式,该格式与各种系统兼容,以提高其在平台上的性能。

安装

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

安装

# Install the required package for YOLO11
pip install ultralytics

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

用法

所有Ultralytics YOLO11 模型都设计为支持开箱即用的导出,从而可以轻松地将其集成到您首选的部署工作流程中。您可以查看支持的导出格式和配置选项的完整列表,以选择最适合您应用程序的设置。

用法

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

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

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

# Run inference
results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF GraphDef format
yolo export model=yolo11n.pt format=pb # creates 'yolo11n.pb'

# Run inference with the exported model
yolo predict model='yolo11n.pb' source='https://ultralytics.com/images/bus.jpg'

导出参数

参数 类型 默认值 描述
format str 'pb' 导出模型的目标格式,定义与各种部署环境的兼容性。
imgsz inttuple 640 模型输入的所需图像大小。 可以是正方形图像的整数或元组 (height, width) 用于指定特定维度。
batch int 1 指定导出模型批处理推理大小或导出模型将并发处理的最大图像数量,在 predict 模式下。
device str None 指定导出设备:CPU(device=cpu),适用于 Apple 芯片的 MPS(device=mps)。

有关导出过程的更多详细信息,请访问Ultralytics 文档页面上的导出

部署导出的 YOLO11 TF GraphDef 模型

将您的 YOLO11 模型导出为 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 YOLO11 模型导出为 TF GraphDef 格式。通过这样做,您可以灵活地在不同的环境中部署您优化的 YOLO11 模型。

有关使用详情,请访问 TF GraphDef 官方文档

有关将 Ultralytics YOLO11 与其他平台和框架集成的更多信息,请务必查看我们的集成指南页面。它包含大量资源和见解,可帮助您充分利用项目中的 YOLO11。

常见问题

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

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

用法

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

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

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

# Run inference
results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF GraphDef format
yolo export model="yolo11n.pt" format="pb" # creates 'yolo11n.pb'

# Run inference with the exported model
yolo predict model="yolo11n.pb" source="https://ultralytics.com/images/bus.jpg"

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

使用 TF GraphDef 部署 YOLO11 模型有哪些好处?

将 YOLO11 模型导出到 TF GraphDef 格式具有以下多个优点,包括:

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

在我们的文档的 TF GraphDef 部分中阅读更多关于优势的信息。

与其他目标检测模型相比,为什么我应该使用 Ultralytics YOLO11?

与其他模型(如 YOLOv5 和 YOLOv7)相比,Ultralytics YOLO11 具有许多优势。一些主要优势包括:

  1. 最先进的性能:YOLO11 为实时对象检测、分割和分类提供卓越的速度和 精度
  2. 易于使用:具有用户友好的 API,用于模型训练、验证、预测和导出,使初学者和专家都可以访问。
  3. 广泛的兼容性: 支持多种导出格式,包括 ONNX、TensorRT、CoreML 和 TensorFlow,以实现通用的部署选项。

在我们的 YOLO11 介绍 中探索更多细节。

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

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

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

有关详细信息,请查看部署选项部分。

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

为了解决导出 YOLO11 模型时遇到的常见问题,Ultralytics 提供了全面的指南和资源。如果在安装或模型导出过程中遇到问题,请参考:

这些资源应该可以帮助您解决与 YOLO11 模型导出和部署相关的大多数问题。



📅 创建于 1 年前 ✏️ 更新于 3 个月前

评论