跳至内容

了解如何从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,可轻松在云平台、内部服务器或边缘设备上部署和提供模型。

  • 云平台: Google Cloud Platform (GCP)、Amazon Web Services (AWS) 和Microsoft Azure 等主要云提供商都提供用于部署和运行TensorFlow 模型的服务,包括TF SavedModels。这些服务提供可扩展和可管理的基础设施,使您可以轻松部署和扩展模型。

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

  • TensorFlow 运行时间 TensorFlow 运行时间 (tfrt) 是用于执行 TensorFlow 图。它提供了用于加载和运行的较低级别的 API TF C++ 环境中的已保存模型。 TensorFlow 与标准相比,运行时提供更好的性能 TensorFlow 运行。它适用于需要低延迟推理和与现有 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 。

常见问题

如何将Ultralytics YOLO 模型导出为TensorFlow SavedModel 格式?

将Ultralytics YOLO 模型导出为TensorFlow SavedModel 格式非常简单。您可以使用Python 或CLI 来实现这一目标:

将YOLOv8 导出到TF SavedModel

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 for inference
tf_savedmodel_model = YOLO("./yolov8n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export the YOLOv8 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 Export 文档

为什么要使用TensorFlow SavedModel 格式?

TensorFlow SavedModel 格式为模型部署提供了多项优势:

  • 可移植性:它提供了一种语言中立的格式,便于在不同环境中共享和部署模型。
  • 兼容性:可与TensorFlow Serving、TensorFlow Lite 和TensorFlow.js 等工具无缝集成,这些工具对于在包括网络和移动应用程序在内的各种平台上部署模型至关重要。
  • 完全封装:对模型结构、权重和编译信息进行编码,可直接共享和继续训练。

有关更多优势和部署选项,请查看Ultralytics YOLO 模型部署选项

TF SavedModel 的典型部署方案是什么?

TF SavedModel 可在各种环境中部署,包括

  • TensorFlow 服务:非常适合需要可扩展和高性能模型服务的生产环境。
  • 云平台:支持主要的云服务,如Google Cloud Platform (GCP)、Amazon Web Services (AWS) 和Microsoft Azure,以实现可扩展的模型部署。
  • 移动和嵌入式设备:使用TensorFlow Lite 转换TF SavedModels 可在移动设备、物联网设备和微控制器上部署。
  • TensorFlow 运行时适用于需要低延迟推理和更高性能的 C++ 环境。

有关详细的部署选项,请访问有关部署TensorFlow 型号的官方指南。

如何安装导出YOLOv8 模型所需的软件包?

要导出YOLOv8 模型,需要安装 ultralytics 软件包。在终端运行以下命令

pip install ultralytics

有关更详细的安装说明和最佳实践,请参阅我们的Ultralytics 安装指南。如果遇到任何问题,请查阅我们的常见问题指南

TensorFlow SavedModel 格式的主要特点是什么?

TF SavedModel 该格式具有以下特点,有利于人工智能开发人员:

  • 便携性:可在各种环境中轻松共享和部署。
  • 易于部署:将计算图、训练参数和元数据封装成一个包,从而简化了加载和推理过程。
  • 资产管理:支持词汇表等外部资产,确保模型加载时这些资产可用。

欲了解更多详情,请浏览 TensorFlow 官方文档



创建于 2024-03-23,更新于 2024-07-05
作者:glenn-jocher(5)、Burhan-Q(1)、abirami-vina(1)

评论