Link to this section了解如何从 YOLO26 导出到 TF SavedModel 格式#
部署 机器学习 模型可能具有挑战性。然而,使用一种高效且灵活的模型格式可以简化你的工作。TF SavedModel 是 TensorFlow 使用的一种开源机器学习框架,用于以一致的方式加载机器学习模型。它就像 TensorFlow 模型的“手提箱”,使其易于在不同设备和系统上携带和使用。
学习如何从 Ultralytics YOLO26 模型导出到 TF SavedModel 可以帮助你轻松地跨不同平台和环境部署模型。在本指南中,我们将带你了解如何将模型转换为 TF SavedModel 格式,从而简化在不同设备上运行模型推理的过程。
Link to this section为什么要导出到 TF SavedModel?#
TensorFlow SavedModel 格式是 Google 开发的 TensorFlow 生态系统的一部分,如下所示。它旨在无缝保存和序列化 TensorFlow 模型。它封装了模型的完整详细信息,如架构、权重,甚至编译信息。这使得在不同环境中共享、部署和继续训练变得简单直接。
TF SavedModel 有一个关键优势:兼容性。它能与 TensorFlow Serving、TensorFlow Lite 和 TensorFlow.js 良好协作。这种兼容性使得在包括 Web 和移动应用在内的各种平台上共享和部署模型变得更加容易。TF SavedModel 格式既适用于研究也适用于生产环境。它提供了一种统一的方式来管理你的模型,确保它们为任何应用做好准备。
Link to this sectionTF SavedModel 的主要功能#
以下是使 TF SavedModel 成为 AI 开发人员绝佳选择的关键功能:
-
可移植性:TF SavedModel 提供了一种语言中立、可恢复、封闭的序列化格式。它们使更高级别的系统和工具能够生成、使用和转换 TensorFlow 模型。SavedModel 可以轻松地在不同平台和环境中共享和部署。
-
部署简便性:TF SavedModel 将计算图、训练好的参数和必要的元数据捆绑到一个包中。它们可以轻松加载并用于推理,而无需构建模型的原始代码。这使得 TensorFlow 模型在各种生产环境中的部署变得简单高效。
-
资产管理:TF SavedModel 支持包含词汇表、嵌入或查找表等外部资产。这些资产与图定义和变量一起存储,确保在加载模型时它们是可用的。此功能简化了依赖外部资源的模型的管理和分发。
Link to this section使用 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)的服务。这些服务提供可扩展且受管理的架构,让你能够轻松部署和扩展模型。
-
移动和嵌入式设备: TensorFlow Lite 是一个用于在移动、嵌入式和物联网设备上运行机器学习模型的轻量级解决方案,它支持将 TF SavedModel 转换为 TensorFlow Lite 格式。这使你可以将模型部署在从智能手机和平板电脑到微控制器和边缘设备的各种设备上。
-
TensorFlow Runtime: TensorFlow Runtime (
tfrt) 是一个用于执行 TensorFlow 图的高性能运行时。它为在 C++ 环境中加载和运行 TF SavedModel 提供了底层 API。与标准 TensorFlow 运行时相比,TensorFlow Runtime 提供了更好的性能。它适用于需要低延迟推理并与现有 C++ 代码库紧密集成的部署场景。
Link to this section将 YOLO26 模型导出到 TF SavedModel#
通过将 YOLO26 模型导出到 TF SavedModel 格式,你可以增强其在各种平台上的适应性和部署便捷性。
Link to this section安装#
要安装所需的包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关安装过程的详细说明和最佳实践,请查阅我们的 Ultralytics 安装指南。在安装 YOLO26 所需的包时,如果遇到任何困难,请参考我们的 常见问题指南 获取解决方案和建议。
Link to this section使用方法#
所有 Ultralytics YOLO26 模型 均设计为支持直接导出,使你可以轻松地将它们集成到你首选的部署工作流中。你可以 查看支持的导出格式和配置选项的完整列表,以便为你的应用选择最佳设置。
TF SavedModel 格式支持 Export、Predict 和 Validate 模式。导出你的模型,然后加载导出的模型进行推理或验证其准确性。
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'from ultralytics import YOLO
# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this section导出参数#
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'saved_model' | 导出模型的目标格式,定义了与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入的理想图像尺寸。可以是正方形图像的整数,或者指定维度的元组 (height, width)。 |
keras | bool | False | 启用导出到 Keras 格式,提供与 TensorFlow Serving 和 API 的兼容性。 |
int8 | bool | False | 激活 INT8 量化,进一步压缩模型并以最小的 精度 损失加快推理速度,主要适用于边缘设备。 |
nms | bool | False | 添加非极大值抑制 (NMS),这对准确高效的检测后处理至关重要。 |
batch | int | 1 | 指定导出模型的批量推理尺寸,或导出模型在 predict 模式下并发处理的最大图像数量。 |
data | str | 'coco8.yaml' | 指向 dataset 配置文件的路径(默认为 coco8.yaml),这对量化至关重要。 |
fraction | float | 1.0 | 指定用于 INT8 量化校准的数据集比例。允许在完整数据集的子集上进行校准,这对实验或资源有限时非常有用。如果在启用 INT8 时未指定,将使用完整数据集。 |
device | str | None | 指定导出设备:CPU (device=cpu),Apple 芯片 MPS (device=mps)。 |
有关导出过程的更多详细信息,请访问 Ultralytics 关于导出的文档页面。
Link to this section部署已导出的 YOLO26 TF SavedModel 模型#
现在你已经将 YOLO26 模型导出为 TF SavedModel 格式,下一步就是进行部署。运行 TF SavedModel 模型的主要且推荐的第一步是使用 YOLO("yolo26n_saved_model/") 方法,如前文的使用代码片段所示。
然而,关于部署 TF SavedModel 模型的详细说明,请参考以下资源:
-
TensorFlow Serving:这是关于如何使用 TensorFlow Serving 部署 TF SavedModel 模型的开发人员文档。
-
在 Node.js 中运行 TensorFlow SavedModel:一篇关于如何直接在 Node.js 中运行 TensorFlow SavedModel 而无需转换的 TensorFlow 博客文章。
-
云上部署:一篇关于在 Cloud AI Platform 上部署 TensorFlow SavedModel 模型的 TensorFlow 博客文章。
Link to this section总结#
在本指南中,我们探讨了如何将 Ultralytics YOLO26 模型导出到 TF SavedModel 格式。通过导出到 TF SavedModel,你获得了在各种平台上优化、部署和扩展 YOLO26 模型的灵活性。
有关用法的更多详细信息,请访问 TF SavedModel 官方文档。
有关将 Ultralytics YOLO26 与其他平台和框架集成的更多信息,请不要忘记查看我们的 集成指南页面。它包含丰富的资源,可帮助你在项目中充分利用 YOLO26。
Link to this section常见问题解答 (FAQ)#
Link to this section我该如何将 Ultralytics YOLO 模型导出为 TensorFlow SavedModel 格式?#
将 Ultralytics YOLO 模型导出为 TensorFlow SavedModel 格式非常简单。你可以使用 Python 或 CLI 来实现:
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo26n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")参考 Ultralytics 导出文档 获取更多详细信息。
Link to this section为什么我应该使用 TensorFlow SavedModel 格式?#
TensorFlow SavedModel 格式为 模型部署 提供了几个优势:
- 可移植性: 它提供了一种语言中立的格式,使得在不同环境中共享和部署模型变得容易。
- 兼容性: 与 TensorFlow Serving、TensorFlow Lite 和 TensorFlow.js 等工具无缝集成,这些工具对于在包括 Web 和移动应用在内的各种平台上部署模型至关重要。
- 完全封装: 对模型架构、权重和编译信息进行编码,从而实现简单的共享和训练延续。
有关更多优势和部署选项,请查看 Ultralytics YOLO 模型部署选项。
Link to this sectionTF SavedModel 的典型部署场景有哪些?#
TF SavedModel 可部署在各种环境中,包括:
- TensorFlow Serving: 非常适合需要可扩展且高性能模型服务的生产环境。
- 云平台: 支持 Google Cloud Platform (GCP)、Amazon Web Services (AWS) 和 Microsoft Azure 等主要云服务,用于可扩展的模型部署。
- 移动和嵌入式设备: 使用 TensorFlow Lite 转换 TF SavedModel 允许部署在移动设备、物联网设备和微控制器上。
- TensorFlow Runtime: 适用于需要更高性能和低延迟推理的 C++ 环境。
有关详细的部署选项,请访问关于 部署 TensorFlow 模型 的官方指南。
Link to this section我该如何安装导出 YOLO26 模型所需的软件包?#
要导出 YOLO26 模型,你需要安装 ultralytics 软件包。在你的终端中运行以下命令:
pip install ultralytics有关更详细的安装说明和最佳实践,请参阅我们的 Ultralytics 安装指南。如果遇到任何问题,请咨询我们的 常见问题指南。
Link to this sectionTensorFlow SavedModel 格式的关键特性是什么?#
TF SavedModel 格式因以下特性对 AI 开发人员有益:
- 可移植性: 允许在各种环境中轻松共享和部署。
- 部署简便性: 将计算图、训练好的参数和元数据封装到一个包中,从而简化了加载和推理。
- 资产管理: 支持词汇表等外部资产,确保在模型加载时它们可用。
有关更多详细信息,请探索 官方 TensorFlow 文档。