跳至内容

了解如何从TF 导出到SavedModel 格式YOLOv8

部署机器学习模型可能具有挑战性。TF SavedModel 是一个开源机器学习框架,由TensorFlow 用于以一致的方式加载机器学习模型。它就像TensorFlow 模型的手提箱,便于携带并在不同的设备和系统上使用。

学习如何从模型导出到TF SavedModel Ultralytics YOLOv8可以帮助您在不同平台和环境中轻松部署模型。在本指南中,我们将介绍如何将模型转换为TF SavedModel 格式,从而简化在不同设备上使用模型运行推论的过程。

为什么要导出到TF SavedModel ?

TensorFlow SavedModel 格式是 Google 开发的TensorFlow 生态系统的一部分,如下图所示。它旨在无缝保存和序列化TensorFlow 模型。它封装了模型的完整细节,如架构、权重甚至编译信息。这样就可以在不同环境中直接共享、部署和继续训练。

TF SavedModel

TF SavedModel 有一个关键优势:兼容性。它可与TensorFlow Serving、TensorFlow Lite 和TensorFlow.js 配合使用。这种兼容性使得在各种平台(包括网络和移动应用程序)上共享和部署模型变得更加容易。TF SavedModel 格式对研究和生产都很有用。它提供了一种统一的方法来管理您的模型,确保它们可用于任何应用。

TF SavedModels 的主要功能

以下是TF SavedModel 成为人工智能开发人员最佳选择的主要功能:

  • 可移植性:TF SavedModel 提供了一种语言中立、可恢复、密封的序列化格式。它们使更高层次的系统和工具能够生成、消费和转换TensorFlow 模型。SavedModels 可在不同平台和环境中轻松共享和部署。

  • 易于部署:TF SavedModel 将计算图、训练参数和必要的元数据捆绑到一个包中。它们可以轻松加载并用于推理,而不需要构建模型的原始代码。这使得TensorFlow 模型在各种生产环境中的部署变得简单高效。

  • 资产管理:TF SavedModel 支持纳入词汇表、嵌入或查找表等外部资产。这些资产与图形定义和变量一起存储,确保在加载模型时可用。这一功能简化了依赖外部资源的模型的管理和分发。

部署选项TF SavedModel

在深入了解将YOLOv8 模型导出为TF SavedModel 格式的过程之前,我们先来探讨一下使用这种格式的一些典型部署场景。

TF SavedModel 提供了一系列部署机器学习模型的选项:

  • TensorFlow 供餐系统 TensorFlow Serving 是专为生产环境设计的灵活、高性能服务系统。它原生支持TF SavedModels,可轻松在云平台、内部服务器或边缘设备上部署和提供模型。

  • 云平台:谷歌云平台(GCP)、亚马逊网络服务(AWS)和微软 Azure 等主要云提供商提供用于部署和运行TensorFlow 模型的服务,包括TF SavedModels。这些服务提供可扩展和可管理的基础设施,使您可以轻松部署和扩展模型。

  • 移动和嵌入式设备: TensorFlow Lite 是在移动、嵌入式和物联网设备上运行机器学习模型的轻量级解决方案,支持将TF SavedModels 转换为TensorFlow Lite 格式。这样,您就可以在从智能手机和平板电脑到微控制器和边缘设备等各种设备上部署模型。

  • TensorFlow 运行时 TensorFlow Runtime (tfrt) 是用于执行TensorFlow 图形的高性能运行时。它为在 C++ 环境中加载和运行TF SavedModels 提供了较低级别的应用程序接口。TensorFlow 与标准的TensorFlow 运行时相比,Runtime 具有更高的性能。它适用于需要低延迟推理和与现有 C++ 代码库紧密集成的部署场景。

将YOLOv8 模型导出到TF SavedModel

通过将YOLOv8 模型导出为TF SavedModel 格式,可以增强模型的适应性,便于在各种平台上部署。

安装

要安装所需的软件包,请运行

安装

# Install the required package for YOLOv8
pip install ultralytics

有关安装过程的详细说明和最佳实践,请查阅我们的Ultralytics 安装指南。在安装YOLOv8 所需的软件包时,如果遇到任何困难,请查阅我们的常见问题指南,了解解决方案和技巧。

使用方法

在了解使用说明之前,需要注意的是,虽然Ultralytics YOLOv8 的所有 型号都可以导出,但您可以在此确保您选择的型号支持导出功能。

使用方法

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TF SavedModel format
model.export(format='saved_model')  # creates '/yolov8n_saved_model'

# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO('./yolov8n_saved_model')

# Run inference
results = tf_savedmodel_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TF SavedModel format
yolo export model=yolov8n.pt format=saved_model  # creates '/yolov8n_saved_model'

# Run inference with the exported model
yolo predict model='./yolov8n_saved_model' source='https://ultralytics.com/images/bus.jpg'

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

部署导出的YOLOv8 TF SavedModel 模型

现在您已将YOLOv8 模型导出为TF SavedModel 格式,下一步就是部署它。运行TF GraphDef 模型的主要和推荐的第一步是使用YOLO("./yolov8n_saved_model")方法,如之前的使用代码片段所示。

不过,有关部署TF SavedModel 模型的深入说明,请参阅以下资源:

摘要

在本指南中,我们探讨了如何将Ultralytics YOLOv8 模型导出为TF SavedModel 格式。通过导出到TF SavedModel ,您可以灵活地在各种平台上优化、部署和扩展您的YOLOv8 模型。

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

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



创建于 2024-03-23,更新于 2024-04-02
作者:Burhan-Q(1),abirami-vina(1)

评论