了解如何从YOLO11导出到TF SavedModel格式
部署机器学习模型可能具有挑战性。然而,使用高效且灵活的模型格式可以使您的工作更加轻松。TF SavedModel是TensorFlow用于以一致方式加载机器学习模型的开源机器学习框架。它就像TensorFlow模型的手提箱,使它们易于携带并在不同设备和系统上使用。
学习如何从Ultralytics YOLO11模型导出到TF SavedModel可以帮助您在不同平台和环境中轻松部署模型。在本指南中,我们将逐步介绍如何将您的模型转换为TF SavedModel格式,简化在不同设备上使用您的模型进行推理的过程。
为什么要导出到TF SavedModel?
TensorFlow SavedModel格式是Google开发的TensorFlow生态系统的一部分,如下所示。它旨在无缝保存和序列化TensorFlow模型。它封装了模型的完整细节,如架构、权重,甚至编译信息。这使得在不同环境中共享、部署和继续训练变得简单。
TF SavedModel的一个关键优势是其兼容性。它与TensorFlow Serving、TensorFlow Lite和TensorFlow.js配合良好。这种兼容性使得在各种平台上共享和部署模型变得更加容易,包括Web和移动应用程序。TF SavedModel格式对研究和生产都很有用。它提供了一种统一的方式来管理您的模型,确保它们随时准备好用于任何应用程序。
TF SavedModel的关键特性
以下是使TF SavedModel成为AI开发者理想选择的几个关键特性:
-
可移植性:TF SavedModel提供了一种语言中立、可恢复、密封的序列化格式。它们使更高级别的系统和工具能够生成、消费和转换TensorFlow模型。SavedModel可以轻松地在不同平台和环境中共享和部署。
-
部署简便:TF SavedModel将计算图、训练参数和必要的元数据捆绑成一个单一包。它们可以轻松加载并用于推理,而无需原始构建模型的代码。这使得在各种生产环境中部署TensorFlow模型变得简单高效。
-
资产管理:TF SavedModel支持包含外部资产,如词汇表、嵌入或查找表。这些资产与图定义和变量一起存储,确保在加载模型时可用。此功能简化了依赖外部资源的模型的管理和分发。
使用TF SavedModel的部署选项
在我们深入了解将YOLO11模型导出为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++ 代码库紧密集成的情况。
将 YOLO11 模型导出为 TF SavedModel
通过将 YOLO11 模型导出为 TF SavedModel 格式,您可以增强其在各种平台上的适应性和部署便利性。
安装
要安装所需的包,请运行:
有关安装过程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。在安装 YOLO11 所需的包时,如果遇到任何困难,请参考我们的 常见问题指南 以获取解决方案和提示。
使用
在深入使用说明之前,需要注意的是,虽然所有 Ultralytics YOLO11 模型 都可以导出,但您可以确保所选模型支持导出功能 在此。
使用
from ultralytics import YOLO
# 加载 YOLO11 模型
model = YOLO("yolo11n.pt")
# 将模型导出为 TF SavedModel 格式
model.export(format="saved_model") # 创建 '/yolo11n_saved_model'
# 加载导出的 TF SavedModel 模型
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
# 运行推理
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
有关支持的导出选项的更多详细信息,请访问 Ultralytics 文档页面上的部署选项。
部署导出的 YOLO11 TF SavedModel 模型
现在您已经将 YOLO11 模型导出为 TF SavedModel 格式,下一步是部署它。运行 TF GraphDef 模型的主要和推荐的第一步是使用之前在代码片段中展示的 YOLO("./yolo11n_saved_model") 方法。
然而,有关部署您的 TF SavedModel 模型的深入说明,请查看以下资源:
-
TensorFlow Serving: 这是如何使用 TensorFlow Serving 部署您的 TF SavedModel 模型的开发者文档。
-
在 Node.js 中直接运行 TensorFlow SavedModel: 一篇关于如何在 Node.js 中直接运行 TensorFlow SavedModel 的 TensorFlow 博客文章。
-
在云上部署: 一篇关于如何在 Cloud AI 平台上部署 TensorFlow SavedModel 模型的 TensorFlow 博客文章。
总结
在本指南中,我们探讨了如何将 Ultralytics YOLO11 模型导出为 TF SavedModel 格式。通过导出为 TF SavedModel,您可以灵活地优化、部署和扩展您的 YOLO11 模型,以适应广泛的平台上。
有关更多详细信息,请访问 TF SavedModel 官方文档。
有关将 Ultralytics YOLO11 与其他平台和框架集成的更多信息,请不要忘记查看我们的 集成指南页面。它包含了许多资源,帮助您在项目中充分利用 YOLO11。
常见问题
如何将 Ultralytics YOLO 模型导出为 TensorFlow SavedModel 格式?
将 Ultralytics YOLO 模型导出为 TensorFlow SavedModel 格式非常简单。您可以使用 Python 或 CLI 来实现这一点:
将 YOLO11 导出为 TF SavedModel
from ultralytics import YOLO
# 加载 YOLO11 模型
model = YOLO("yolo11n.pt")
# 将模型导出为 TF SavedModel 格式
model.export(format="saved_model") # 创建 '/yolo11n_saved_model'
# 加载导出的 TF SavedModel 进行推理
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
```bash
``` # 将YOLO11模型导出为TF SavedModel格式 yolo export model=yolo11n.pt format=saved_model # 创建'/yolo11n_saved_model'
# 使用导出的模型进行推理
yolo predict model='./yolo11n_saved_model' source='https://ultralytics.com/images/bus.jpg'
```
更多详情请参阅Ultralytics导出文档。
为什么我应该使用TensorFlow SavedModel格式?
TensorFlow SavedModel格式在模型部署方面提供了几个优势:
- 可移植性: 它提供了一种语言中立的格式,使得在不同环境中共享和部署模型变得容易。
- 兼容性: 无缝集成TensorFlow Serving、TensorFlow Lite和TensorFlow.js等工具,这些工具对于在包括网页和移动应用在内的各种平台上部署模型至关重要。
- 完整封装: 编码了模型架构、权重和编译信息,便于直接共享和继续训练。
更多优势和部署选项,请查看Ultralytics YOLO模型部署选项。
TF SavedModel的典型部署场景有哪些?
TF SavedModel可以在多种环境中部署,包括:
- TensorFlow Serving: 适用于需要可扩展和高性能模型服务的生产环境。
- 云平台: 支持Google Cloud Platform (GCP)、Amazon Web Services (AWS)和Microsoft Azure等主要云服务,用于可扩展的模型部署。
- 移动和嵌入式设备: 使用TensorFlow Lite转换TF SavedModel,可以在移动设备、物联网设备和微控制器上部署。
- TensorFlow Runtime: 适用于需要低延迟推理和更好性能的C++环境。
有关详细的部署选项,请访问部署TensorFlow模型的官方指南。
如何安装导出YOLO11模型所需的包?
要导出YOLO11模型,您需要安装ultralytics
包。在终端中运行以下命令:
有关更详细的安装说明和最佳实践,请参阅我们的Ultralytics安装指南。如果遇到任何问题,请查阅我们的常见问题指南。
TensorFlow SavedModel格式的主要特点是什么?
TF SavedModel格式对AI开发者有益,因其具备以下特点:
- 可移植性: 允许轻松地在各种环境中共享和部署。
- 部署简便: 将计算图、训练参数和元数据封装成一个包,简化了加载和推理过程。
- 资产管理: 支持外部资产如词汇表,确保模型加载时这些资产可用。
更多详情,请探索官方TensorFlow文档。 ```