如何从 YOLO26 导出 TF GraphDef 以进行部署#
在不同环境中部署 YOLO26 等前沿计算机视觉模型时,你可能会遇到兼容性问题。Google 的 TensorFlow GraphDef(或称 TF GraphDef)通过提供模型的序列化、平台无关表示,为此提供了一种解决方案。使用 TF GraphDef 模型格式,你可以在完整 TensorFlow 生态系统可能不可用的环境中部署 YOLO26 模型,例如移动设备或专用硬件。
在本指南中,我们将逐步介绍如何将你的 Ultralytics YOLO26模型导出为 TF GraphDef 模型格式。通过转换模型,你可以简化部署,并在更广泛的应用和平台中使用 YOLO26 的计算机视觉能力。
为什么要导出为 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 推理。
将 YOLO26 模型导出为 TF GraphDef#
你可以将 YOLO26 模型转换为与各种系统兼容的 TF GraphDef 格式,从而提升其在不同平台上的性能。
安装#
要安装所需的软件包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关安装流程的详细说明和最佳实践,请参阅我们的 Ultralytics 安装指南。在为 YOLO26 安装所需软件包时,如果遇到任何困难,请参阅我们的常见问题指南以获取解决方案和建议。
使用方法#
所有 Ultralytics 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'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")导出参数#
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'pb' | 导出模型的目标格式,用于定义其与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入所需的图像尺寸。可以使用表示正方形图像的整数,也可以使用元组 (height, width) 指定具体尺寸。 |
quantize | int 或 str | None | 固定 FP32 导出。GraphDef 不支持在导出时进行 FP16、INT8 或 W8A16 精度转换。 |
opset | int | None | 指定中间 ONNX 图的 ONNX 算子集版本。如果未设置,则使用最新的受支持版本。 |
batch | int | 1 | 指定导出模型的批量推理大小,或指定导出模型在 predict 模式下并发处理的最大图像数量。 |
device | str | None | 指定导出所使用的设备:CPU(device=cpu)、Apple silicon 上的 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 # 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 模型导出文档。
将 YOLO26 模型导出为 TF GraphDef 格式具有多项优势,包括:
- 平台无关性:TF GraphDef 提供平台无关的格式,使模型能够部署到包括移动设备和 Web 浏览器在内的各种环境中。
- 优化:该格式支持常量折叠、量化和图转换等多种优化,有助于提升执行效率并降低内存使用量。
- 硬件加速:TF GraphDef 格式的模型可以利用 GPU、TPU 和 AI 芯片等硬件加速器来提升性能。
在文档的 TF GraphDef 部分中了解更多相关优势。
将 YOLO26 模型导出为 TF GraphDef 格式后,你可以在各种专用硬件平台上进行部署。典型部署场景包括:
- TensorFlow Serving:使用 TensorFlow Serving 在生产环境中实现可扩展的模型部署。它支持模型管理和高效提供模型服务。
- 移动设备:将 TF GraphDef 模型转换为针对移动设备和嵌入式设备优化的 TensorFlow Lite,从而支持设备端推理。
- Web 浏览器:使用 TensorFlow.js 在 Web 应用中部署模型,以进行客户端推理。
- AI 加速器:利用 TPU 和自定义 AI 芯片加速推理。
请查看部署选项部分以获取详细信息。