跳至内容

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

在不同环境中部署尖端计算机视觉模型(如YOLO11 )时,可能会遇到兼容性问题。Google's TensorFlowGraphDef或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 和人工智能芯片等硬件加速器,为YOLO11 推论流水线带来显著的性能提升。TF GraphDef 格式创建了一个包含模型及其依赖项的独立软件包,从而简化了部署和集成到不同系统中的过程。

TF GraphDef 型号的主要特点

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

下面来看看它的主要特点:

  • 模型序列化:TF GraphDef 提供了一种以独立于平台的格式序列化和存储TensorFlow 模型的方法。通过这种序列化表示,您可以在没有原始Python 代码库的情况下加载和执行模型,从而使部署变得更加容易。

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

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

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

部署选项TF GraphDef

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

下面介绍如何通过TF GraphDef 在各种平台上高效部署。

  • TensorFlow 服务:该框架设计用于在生产环境中部署TensorFlow 模型。TensorFlow Serving 提供模型管理、版本管理和基础架构,以实现大规模的高效模型服务。这是一种无缝方式,可将基于GraphDef 的模型集成到生产网络服务或 API 中。

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

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

  • 专用硬件: TF GraphDef 与平台无关的特性使其可以使用定制硬件,如加速器和 TPU(Tensor Processing Units)。这些设备可以为计算密集型模型提供性能优势。

将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'

有关支持的导出选项的详细信息,请访问Ultralytics 部署选项文档页面

部署导出的YOLO11 TF GraphDef 模型

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

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

  • TensorFlow 服务:TensorFlow 服务指南,教授如何在生产环境中高效部署和服务机器学习模型。

  • TensorFlow 精简版:本页介绍如何使用TensorFlow Lite 将机器学习模型转换为针对设备上推理而优化的格式。

  • TensorFlow.js:模型转换指南,教您如何将TensorFlow 或 Keras 模型转换为TensorFlow.js 格式,以便在网络应用程序中使用。

摘要

在本指南中,我们探讨了如何将Ultralytics YOLO11 模型导出为TF GraphDef 格式。这样,您就可以在不同环境中灵活部署优化后的YOLO11 模型。

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

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

常见问题

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

Ultralytics YOLO11 模型可无缝导出为TensorFlow GraphDef (TF GraphDef ) 格式。这种格式提供了一种序列化的、与平台无关的模型表示法,非常适合在移动和网络等不同环境中部署。要将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 提供与平台无关的格式,允许在包括移动和网络浏览器在内的各种环境中部署模型。
  2. 优化:该格式可进行多种优化,如常数折叠、量化和图形转换,从而提高执行效率并减少内存使用量。
  3. 硬件加速:TF GraphDef 格式的模型可利用 GPU、TPU 和人工智能芯片等硬件加速器提高性能。

如需了解更多益处,请参阅我们文档中的TF GraphDef 部分

为什么要使用Ultralytics YOLO11 而不是其他对象检测模型?

Ultralytics YOLO11 与YOLOv5 和 YOLOv7 等其他型号相比,它具有众多优势。其中一些主要优势包括

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

更多详情,请参阅 YOLO11 简介

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

YOLO11 模型导出为TF GraphDef 格式后,就可以在各种专用硬件平台上进行部署。典型的部署方案包括

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

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

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

对于导出YOLO11 模型的常见问题的故障排除,Ultralytics 提供了全面的指南和资源。如果在安装或导出模型时遇到问题,请参阅:

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

📅创建于 8 个月前 ✏️已更新 2 个月前

评论