了解如何将 YOLO26 导出为 TF SavedModel 格式#
部署机器学习模型可能颇具挑战。不过,使用高效且灵活的模型格式可以让你轻松不少。TF SavedModel 是 TensorFlow 的标准序列化格式,可一致地保存和加载机器学习模型。它就像一个装 TensorFlow 模型的行李箱,方便你在不同设备和系统上携带和使用模型。
了解如何从 Ultralytics YOLO26 模型导出为 TF SavedModel,有助于你在不同平台和环境中轻松部署模型。本指南将介绍如何将模型转换为 TF SavedModel 格式,简化在不同设备上运行模型推理的流程。
为什么要导出为 TF SavedModel?#
如下所示,TensorFlow SavedModel 格式是 Google 开发的 TensorFlow 生态系统的一部分。该格式旨在无缝保存和序列化 TensorFlow 模型。它包含模型的所有详细信息,例如架构、权重甚至编译信息。因此,你可以轻松地在不同环境中共享、部署模型并继续训练。
TF SavedModel 的一项主要优势是兼容性。它可以很好地配合 TensorFlow Serving、LiteRT(原名 TensorFlow Lite)和 TensorFlow.js 使用。借助这种兼容性,你可以更轻松地在包括 Web 和移动应用在内的各种平台上共享和部署模型。TF SavedModel 格式适用于研究和生产环境。它提供了统一的模型管理方式,确保模型能够满足各种应用需求。
TF SavedModel 的主要特性#
以下是让 TF SavedModel 成为 AI 开发者理想选择的主要特性:
-
可移植性:TF SavedModel 提供与编程语言无关、可恢复且自包含的序列化格式。它支持更高级别的系统和工具生成、使用和转换 TensorFlow 模型。SavedModel 可以轻松地在不同平台和环境中共享和部署。
-
易于部署:TF SavedModel 将计算图、训练参数和必要的元数据打包为单个软件包。无需原始模型构建代码即可轻松加载并用于推理。因此,在各种生产环境中部署 TensorFlow 模型既简单又高效。
-
资源管理:TF SavedModel 支持包含词汇表、嵌入或查找表等外部资源。这些资源与图定义和变量存储在一起,确保加载模型时可以使用它们。这项功能简化了依赖外部资源的模型的管理和分发。
使用 TF SavedModel 的部署选项#
在深入介绍将 YOLO26 模型导出为 TF SavedModel 格式的流程之前,我们先来了解这种格式的一些典型部署场景。
TF SavedModel 提供了多种机器学习模型部署选项:
-
TensorFlow Serving:TensorFlow Serving 是一种灵活、高性能的服务系统,专为生产环境设计。它原生支持 TF SavedModel,让你可以轻松地在云平台、本地服务器或边缘设备上部署模型并提供服务。
-
云平台:Google Cloud Platform (GCP)、Amazon Web Services (AWS) 和 Microsoft Azure 等主要云服务商都提供部署和运行 TensorFlow 模型(包括 TF SavedModel)的服务。这些服务提供可扩展的托管基础设施,让你轻松部署和扩展模型。
-
移动和嵌入式设备:LiteRT(原名 TensorFlow Lite)是一种轻量级解决方案,可在移动设备、嵌入式设备和 IoT 设备上运行机器学习模型,并支持将 TF SavedModel 转换为 LiteRT 格式。这样,你就可以在各种设备上部署模型,从智能手机和平板电脑到微控制器和边缘设备。
-
TensorFlow Runtime:TensorFlow Runtime (
tfrt) 是用于执行 TensorFlow 计算图的高性能运行时。它提供了较低级别的 API,可在 C++ 环境中加载和运行 TF SavedModel。与标准 TensorFlow 运行时相比,TensorFlow Runtime 性能更好。它适用于需要低延迟推理并与现有 C++ 代码库紧密集成的部署场景。
支持的任务#
TF SavedModel 导出支持 Ultralytics 的全部七种任务。语义分割和深度估计仅适用于 YOLO26,因为只有 YOLO26 系列包含这两种任务头。
将 YOLO26 模型导出为 TF SavedModel#
将 YOLO26 模型导出为 TF SavedModel 格式,可以提升模型的适应性,并简化其在各种平台上的部署。
安装#
要安装所需软件包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关安装流程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。安装 YOLO26 所需的软件包时,如果遇到困难,请查阅我们的常见问题指南,获取解决方案和建议。
用法#
所有 Ultralytics YOLO26 模型均支持开箱即用的导出,便于你将模型集成到首选的部署工作流中。你可以查看支持的导出格式和配置选项的完整列表,为你的应用选择最佳配置。
TF SavedModel 格式支持 Export、Predict 和 Validate 模式。导出模型后,加载导出的模型即可运行推理或验证其准确率。
from ultralytics import YOLO
# 加载 YOLO26 模型
model = YOLO("yolo26n.pt")
# 将模型导出为 TF SavedModel 格式
model.export(format="saved_model") # creates 'yolo26n_saved_model'from ultralytics import YOLO
# 加载导出的 TF SavedModel 模型
model = YOLO("./yolo26n_saved_model")
# 运行推理
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# 加载导出的 TF SavedModel 模型
model = YOLO("./yolo26n_saved_model")
# 在 COCO8 数据集上验证准确率
metrics = model.val(data="coco8.yaml")导出参数#
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
format | str | 'saved_model' | 导出模型的目标格式,用于定义与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入所需的图像尺寸。正方形图像可使用整数;若要指定具体尺寸,则可使用元组 (height, width)。 |
quantize | int 或 str | None | 量化精度:8(INT8/PTQ;需要校准 data/fraction)或 32/未设置(FP32)。SavedModel 导出不支持 FP16。此选项取代已弃用的 int8 标志。 |
opset | int | None | 指定中间 ONNX 图的 ONNX opset 版本。若未设置,则使用最新的受支持版本。 |
nms | bool,可选 | None | 选择原始输出(None,默认)、嵌入式 NMS(True)或无 NMS 检测头(False)。 |
batch | int | 1 | 指定导出模型的批量推理大小,或导出模型在 predict 模式下可同时处理的最大图像数。 |
data | str | None | 数据集 YAML 文件路径,量化时必须提供;分类任务则接受数据集目录或内置数据集名称。如果使用 quantize=8 时未指定,Ultralytics 会根据模型任务选择默认校准数据集。 |
fraction | float、int 或 list | 1.0 | 校准子集,可按比例、图像数量或 [train, val, test] 比例/数量指定。包含两个项目的列表会让 test 保持完整,而 0 会跳过它。 |
device | str | None | 指定导出设备:CPU (device=cpu),Apple 芯片上的 MPS (device=mps)。 |
有关导出流程的更多详情,请访问 Ultralytics 导出文档页面。
部署导出的 YOLO26 TF SavedModel 模型#
现在你已将 YOLO26 模型导出为 TF SavedModel 格式,下一步就是部署。运行 TF SavedModel 模型的首选且推荐的第一步,是使用 YOLO("yolo26n_saved_model/") 方法,如前面的用法代码片段所示。
如需详细了解如何部署 TF SavedModel 模型,请参阅以下资源:
-
TensorFlow Serving:此开发者文档介绍如何使用 TensorFlow Serving 部署 TF SavedModel 模型。
-
在 Node.js 中运行 TensorFlow SavedModel:这篇 TensorFlow 博客文章介绍如何直接在 Node.js 中运行 TensorFlow SavedModel,无需转换。
-
在云端部署:一篇介绍如何在 Cloud AI Platform 上部署 TensorFlow SavedModel 模型的 TensorFlow 博客文章。
总结#
在本指南中,我们介绍了如何将 Ultralytics YOLO26 模型导出为 TF SavedModel 格式。导出为 TF SavedModel 后,你可以灵活地在各种平台上优化、部署和扩展 YOLO26 模型。
如需了解更多用法详情,请访问 TF SavedModel 官方文档。
如需了解将 Ultralytics YOLO26 与其他平台和框架集成的更多信息,别忘了查看我们的集成指南页面。其中包含丰富的资源,帮助你在项目中充分发挥 YOLO26 的作用。
常见问题#
将 Ultralytics YOLO 模型导出为 TensorFlow SavedModel 格式非常简单。你可以使用 Python 或 CLI 来完成:
将 YOLO26 导出为 TF SavedModelfrom ultralytics import YOLO # 加载 YOLO26 模型 model = YOLO("yolo26n.pt") # 将模型导出为 TF SavedModel 格式 model.export(format="saved_model") # creates 'yolo26n_saved_model' # 加载导出的 TF SavedModel 以进行推理 tf_savedmodel_model = YOLO("./yolo26n_saved_model") results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")如需了解更多详情,请参阅 Ultralytics 导出文档。
TensorFlow SavedModel 格式为模型部署带来了多项优势:
- 可移植性:它提供与语言无关的格式,便于在不同环境中共享和部署模型。
- 兼容性:可与 TensorFlow Serving、LiteRT 和 TensorFlow.js 等工具无缝集成,这些工具对于在包括 Web 和移动应用在内的各种平台上部署模型至关重要。
- 完整封装:它对模型架构、权重和编译信息进行编码,便于共享模型并继续训练。
如需了解更多优势和部署选项,请查看 Ultralytics YOLO 模型部署选项。
TF SavedModel 可部署在各种环境中,包括:
- TensorFlow Serving:非常适合需要可扩展、高性能模型服务的生产环境。
- 云平台:支持 Google Cloud Platform (GCP)、Amazon Web Services (AWS) 和 Microsoft Azure 等主流云服务,可用于可扩展的模型部署。
- 移动设备和嵌入式设备:使用 LiteRT(原名 TensorFlow Lite)转换 TF SavedModel,即可将模型部署到移动设备、IoT 设备和微控制器上。
- TensorFlow Runtime:适用于需要低延迟推理和更高性能的 C++ 环境。
如需了解详细的部署选项,请访问关于部署 TensorFlow 模型的官方指南。
要导出 YOLO26 模型,你需要安装
ultralytics软件包。在终端中运行以下命令:pip install ultralytics如需查看更详细的安装说明和最佳实践,请参阅我们的 Ultralytics 安装指南。如果遇到问题,请查阅我们的常见问题指南。
TF SavedModel 格式具备以下特性,因此对 AI 开发者很有帮助:
- 可移植性:支持在各种环境中轻松共享和部署模型。
- 易于部署:将计算图、训练后的参数和元数据封装到单个软件包中,从而简化加载和推理。
- 资源管理:支持词汇表等外部资源,确保模型加载时这些资源可用。
如需了解更多详情,请参阅 TensorFlow 官方文档。