Meet YOLO26: next-gen vision AI.

Link to this section将 YOLO26 模型导出为 TorchScript 以实现快速部署#

在不同的环境(包括嵌入式系统、网页浏览器或 Python 支持有限的平台)中部署 计算机视觉 模型,需要灵活且可移植的解决方案。TorchScript 专注于可移植性以及在无法运行完整 Python 框架的环境中运行模型的能力。这使其非常适合在各种设备或平台上部署计算机视觉功能的场景。

导出为 TorchScript 以序列化你的 Ultralytics YOLO26 模型,从而实现跨平台兼容和精简部署。在本指南中,我们将向你展示如何将 YOLO26 模型导出为 TorchScript 格式,让你能更轻松地在更广泛的应用程序中使用它们。

Link to this section为什么要导出为 TorchScript?#

TorchScript 模型序列化和部署工作流程概述

TorchScript 由 PyTorch 的创建者开发,是一个用于优化和部署 PyTorch 模型到各种平台的强大工具。将 YOLO26 模型导出为 TorchScript 对于从研究阶段过渡到实际应用至关重要。作为 PyTorch 框架的一部分,TorchScript 通过允许 PyTorch 模型在不支持 Python 的环境中使用,从而使这一过渡更加顺畅。

该过程涉及两种技术:追踪(tracing)和脚本化(scripting)。追踪会在模型执行期间记录操作,而脚本化允许使用 Python 的子集来定义模型。这些技术确保了像 YOLO26 这样的模型即使在其常规 Python 环境之外也能发挥作用。

TorchScript 脚本化与追踪对比

TorchScript 模型还可以通过算子融合(operator fusion)和内存使用优化等技术进行改进,确保执行效率。导出到 TorchScript 的另一个优势是它能够加速模型在各种硬件平台上的执行。它为你的 PyTorch 模型创建了一个独立的、可用于生产环境的表示形式,可以集成到 C++ 环境、嵌入式系统中,或部署在网页及移动应用程序中。

Link to this sectionTorchScript 模型的主要特性#

TorchScript 是 PyTorch 生态系统的关键组成部分,它为优化和部署 深度学习 模型提供了强大的功能。

TorchScript 主要特性概述

以下是使 TorchScript 成为开发者得力工具的关键特性:

  • 静态图执行:TorchScript 使用模型计算的静态图表示,这与 PyTorch 的动态图执行有所不同。在静态图执行中,计算图在实际执行前被定义并编译一次,从而提高了推理时的性能。

  • 模型序列化:TorchScript 允许你将 PyTorch 模型序列化为平台无关的格式。序列化后的模型无需原始 Python 代码即可加载,从而可以在不同的运行时环境中部署。

  • JIT 编译:TorchScript 使用即时(JIT)编译将 PyTorch 模型转换为优化的中间表示。JIT 会编译模型的计算图,从而在目标设备上实现高效执行。

  • 跨语言集成:通过 TorchScript,你可以将 PyTorch 模型导出到 C++、Java 和 JavaScript 等其他语言。这使得将 PyTorch 模型集成到使用不同语言编写的现有软件系统中变得更加容易。

  • 逐步转换:TorchScript 提供了一种逐步转换的方法,允许你将 PyTorch 模型的部分内容逐步转换为 TorchScript。这种灵活性在处理复杂模型或想要优化代码特定部分时特别有用。

Link to this sectionTorchScript 中的部署选项#

在查看导出 YOLO26 模型到 TorchScript 格式的代码之前,让我们先了解一下 TorchScript 模型通常的应用场景。

TorchScript 为 机器学习 模型提供了多种部署选项,例如:

  • C++ API:TorchScript 最常见的用例是其 C++ API,它允许你直接在 C++ 应用程序中加载和执行优化的 TorchScript 模型。这对于不适合或无法使用 Python 的生产环境非常理想。C++ API 提供了低开销且高效的 TorchScript 模型执行,最大限度地发挥了性能潜力。

  • 移动端部署:TorchScript 提供了将模型转换为可在移动设备上轻松部署格式的工具。PyTorch Mobile 提供了一个在 iOS 和 Android 应用中执行这些模型的运行时环境。这实现了低延迟的离线推理能力,提升了用户体验和 数据隐私

  • 云端部署:TorchScript 模型可以使用像 TorchServe 这样的解决方案部署到云服务器。它为生产环境中的可扩展部署提供了模型版本管理、批处理和指标监控等功能。使用 TorchScript 进行云端部署可以让你的模型通过 API 或其他网络服务被访问。

Link to this section导出为 TorchScript:转换你的 YOLO26 模型#

将 YOLO26 模型导出为 TorchScript,可以使其更易于在不同地方使用,并有助于其运行得更快、更高效。对于任何希望在实际应用中更有效地使用深度学习模型的人来说,这都是极好的选择。

Link to this section安装#

要安装所需的包,请运行:

安装
# Install the required package for YOLO26
pip install ultralytics

有关安装过程的详细说明和最佳实践,请查看我们的Ultralytics 安装指南。如果在为 YOLO26 安装所需包时遇到任何困难,请咨询我们的常见问题指南获取解决方案和提示。

Link to this section使用方法#

所有 Ultralytics YOLO26 模型 都设计为开箱即用,支持导出,从而轻松集成到你首选的部署工作流程中。你可以 查看支持的导出格式和配置选项的完整列表 以选择最适合你应用程序的设置。

TorchScript 格式支持 导出预测验证 模式。导出你的模型,然后加载该模型以运行推理或验证其准确性。

导出
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'
预测
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
验证
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this section导出参数#

参数类型默认值描述
formatstr'torchscript'导出模型的目标格式,定义了与各种部署环境的兼容性。
imgszinttuple640模型输入的所需图像尺寸。可以是一个用于正方形图像的整数,或者是一个用于特定尺寸的元组 (height, width)
dynamicboolFalse允许动态输入尺寸,增强了处理不同图像尺寸的灵活性。
halfboolFalse启用 FP16(半精度)量化,可减小模型大小并可能在受支持的硬件上加快推理速度。
optimizeboolFalse应用针对移动设备的优化,可能会减小模型大小并提高性能。
nmsboolFalse添加非极大值抑制(NMS),这对实现准确且高效的检测后处理至关重要。
batchint1指定导出模型的批量推理大小,或导出模型在 predict 模式下并发处理的最大图像数量。
devicestrNone指定导出的设备:GPU (device=0)、CPU (device=cpu)、Apple 芯片的 MPS (device=mps)。

有关导出过程的更多详细信息,请访问 Ultralytics 导出文档页面

Link to this section部署已导出的 YOLO26 TorchScript 模型#

在成功将你的 Ultralytics YOLO26 模型导出为 TorchScript 格式后,你现在可以部署它们了。运行 TorchScript 模型的首要且推荐的第一步是使用 YOLO("model.torchscript") 方法,正如之前的用法代码片段中所述。若要获取在其他环境中部署 TorchScript 模型的深入说明,请查看以下资源:

  • 探索移动端部署PyTorch 移动端文档提供了在移动设备上部署模型的全面指南,确保你的应用程序高效且响应迅速。

  • 掌握服务端部署:学习如何通过 TorchServe 在服务器端部署模型,并提供可扩展、高效模型服务的逐步教程。

  • 实现 C++ 部署:深入阅读关于在 C++ 中加载 TorchScript 模型的教程,助力你将 TorchScript 模型集成到 C++ 应用程序中,以实现更佳的性能和多功能性。

Link to this section总结#

在本指南中,我们探讨了将 Ultralytics YOLO26 模型导出为 TorchScript 格式的过程。通过遵循提供的说明,你可以优化 YOLO26 模型的性能,并获得跨各种平台和环境进行部署的灵活性。

有关用法的更多详细信息,请访问 TorchScript 官方文档

此外,如果你想了解有关其他 Ultralytics YOLO26 集成的更多信息,请访问我们的 集成指南页面。你会在那里找到许多有用的资源和见解。

Link to this section常见问题解答#

Link to this section什么是 Ultralytics YOLO26 模型导出为 TorchScript?#

将 Ultralytics YOLO26 模型导出为 TorchScript 可实现灵活的跨平台部署。TorchScript 作为 PyTorch 生态系统的一部分,促进了模型的序列化,之后便可在不支持 Python 的环境中执行。这使其非常适合在嵌入式系统、C++ 环境、移动应用程序甚至网页浏览器中部署模型。导出为 TorchScript 能够确保你的 YOLO26 模型在不同平台上具备高效的性能和更广泛的适用性。

Link to this section我该如何使用 Ultralytics 将我的 YOLO26 模型导出为 TorchScript?#

要将 YOLO26 模型导出为 TorchScript,你可以使用以下示例代码:

使用方法
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo26n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")

有关导出过程的更多详细信息,请参考 Ultralytics 关于导出的文档

Link to this section我为什么要使用 TorchScript 部署 YOLO26 模型?#

使用 TorchScript 部署 YOLO26 模型具有几个优势:

  • 可移植性:导出的模型可以在无需 Python 的环境中运行,例如 C++ 应用程序、嵌入式系统或移动设备。
  • 优化:TorchScript 支持静态图执行和即时(JIT)编译,这可以优化模型性能。
  • 跨语言集成:TorchScript 模型可以集成到其他编程语言中,从而增强灵活性和可扩展性。
  • 序列化:模型可以被序列化,从而允许平台无关的加载和推理。

若要深入了解部署,请访问 TorchServe 文档C++ 部署指南。对于设备端移动部署,PyTorch 现在推荐使用 ExecuTorch,它使用其独立的 torch.export().pte 流水线,而不是 TorchScript。

Link to this section将 YOLO26 模型导出为 TorchScript 的安装步骤是什么?#

要安装导出 YOLO26 模型所需的包,请使用以下命令:

安装
# Install the required package for YOLO26
pip install ultralytics

有关详细说明,请访问 Ultralytics 安装指南。如果安装过程中出现任何问题,请查阅 常见问题指南

Link to this section我该如何部署我导出的 TorchScript YOLO26 模型?#

将 YOLO26 模型导出为 TorchScript 格式后,你可以在各种平台上部署它们:

  • C++ API:非常适合低开销、高效率的生产环境。
  • 移动端部署:使用 LibTorch(PyTorch C++ 运行时)在设备上运行 TorchScript 模型。对于新的移动项目,PyTorch 推荐使用 ExecuTorch,这是一种单独的 .pte 导出流水线。
  • 云端部署:利用 TorchServe 等服务进行可扩展的服务端部署。

探索在这些环境中部署模型的全面指南,以充分利用 TorchScript 的功能。

评论