YOLO11模型导出为TorchScript以快速部署
在不同的环境中部署计算机视觉模型,包括嵌入式系统、网页浏览器或Python支持有限的平台上,需要一个灵活且便携的解决方案。TorchScript专注于便携性,能够在整个Python框架不可用的环境中运行模型。这使得它在需要跨各种设备或平台部署计算机视觉能力的情况下非常理想。
将Ultralytics YOLO11模型导出为TorchScript,以实现跨平台兼容性和简化的部署。在本指南中,我们将向您展示如何将YOLO11模型导出为TorchScript格式,使您更容易在更广泛的应用中使用它们。
为什么要导出为TorchScript?
由PyTorch的创建者开发的TorchScript是一个强大的工具,用于优化和在各种平台上部署PyTorch模型。将YOLO11模型导出为TorchScript对于从研究转向实际应用至关重要。TorchScript作为PyTorch框架的一部分,通过允许在Python不支持的环境中使用PyTorch模型,帮助实现这一过渡。
该过程涉及两种技术:追踪和脚本化。追踪记录模型执行过程中的操作,而脚本化允许使用Python子集定义模型。这些技术确保像YOLO11这样的模型即使在常规Python环境之外也能发挥其作用。
TorchScript模型还可以通过操作融合和内存使用优化等技术进行优化,确保高效执行。导出为TorchScript的另一个优势是其能够在各种硬件平台上加速模型执行。它创建了一个独立的、生产就绪的PyTorch模型表示,可以集成到C++环境、嵌入式系统中,或部署在网页或移动应用程序中。
TorchScript模型的关键特性
TorchScript作为PyTorch生态系统的重要组成部分,提供了优化和部署深度学习模型的强大功能。
以下是使TorchScript成为开发人员宝贵工具的关键特性:
-
静态图执行:TorchScript使用模型的计算的静态图表示,这与PyTorch的动态图执行不同。在静态图执行中,计算图在实际执行前定义和编译一次,从而在推理过程中提高了性能。
-
模型序列化:TorchScript允许您将PyTorch模型序列化为平台无关的格式。序列化的模型可以在不需要原始Python代码的情况下加载,从而在不同的运行时环境中进行部署。
-
JIT编译:TorchScript使用即时(JIT)编译将PyTorch模型转换为优化的中间表示。JIT编译模型的计算图,从而在目标设备上实现高效执行。
-
跨语言集成:通过TorchScript,您可以将PyTorch模型导出到其他语言,如C++、Java和JavaScript。这使得将PyTorch模型集成到用不同语言编写的现有软件系统中变得更加容易。
-
逐步转换:TorchScript提供逐步转换的方法,允许您将PyTorch模型的部分逐步转换为TorchScript。这种灵活性在处理复杂模型或希望优化代码的特定部分时特别有用。
TorchScript中的部署选项
在我们查看将YOLO11模型导出为TorchScript格式的代码之前,让我们了解一下TorchScript模型通常用于哪些地方。
TorchScript为机器学习模型提供了各种部署选项,例如: - C++ API: TorchScript 最常见的用例是其 C++ API,它允许您直接在 C++ 应用程序中加载和执行优化的 TorchScript 模型。这对于 Python 可能不适用或不可用的生产环境非常理想。C++ API 提供了低开销且高效的 TorchScript 模型执行,最大化性能潜力。
-
移动部署: TorchScript 提供了将模型转换为易于在移动设备上部署的格式的工具。PyTorch Mobile 为在 iOS 和 Android 应用中执行这些模型提供了运行时。这使得低延迟、离线推理成为可能,增强了用户体验和数据隐私。
-
云部署: 可以使用 TorchServe 等解决方案将 TorchScript 模型部署到基于云的服务器。它提供了模型版本控制、批处理和指标监控等功能,以便在生产环境中进行可扩展的部署。通过 TorchScript 进行云部署可以使您的模型通过 API 或其他网络服务访问。
导出到 TorchScript:转换您的 YOLO11 模型
将 YOLO11 模型导出到 TorchScript 使其更容易在不同地方使用,并帮助它们运行得更快、更高效。这对于希望在实际应用中更有效地使用深度学习模型的任何人来说都非常棒。
安装
要安装所需的包,请运行:
有关安装过程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。在安装 YOLO11 所需的包时,如果遇到任何困难,请参考我们的 常见问题指南 以获取解决方案和提示。
使用
在深入使用说明之前,需要注意的是,虽然所有 Ultralytics YOLO11 模型 都可以导出,但您可以确保所选模型支持导出功能在此。
使用
from ultralytics import YOLO
# 加载 YOLO11 模型
model = YOLO("yolo11n.pt")
# 将模型导出为 TorchScript 格式
model.export(format="torchscript") # 创建 'yolo11n.torchscript'
# 加载导出的 TorchScript 模型
torchscript_model = YOLO("yolo11n.torchscript")
# 运行推理
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
有关导出过程的更多详细信息,请访问 Ultralytics 导出文档页面。
部署导出的 YOLO11 TorchScript 模型
成功将 Ultralytics YOLO11 模型导出为 TorchScript 格式后,您现在可以部署它们。运行 TorchScript 模型的主要和推荐的第一步是使用 YOLO("model.torchscript") 方法,如前面的使用代码片段中所述。然而,有关在其他各种环境中部署 TorchScript 模型的深入说明,请查看以下资源:
-
探索移动部署: PyTorch Mobile 文档提供了在移动设备上部署模型的全面指南,确保您的应用程序高效且响应迅速。
-
掌握服务器端部署: 学习如何使用 TorchServe 在服务器端部署模型,提供可扩展、高效模型服务的分步教程。
-
实现 C++ 部署: 深入了解在 C++ 中加载 TorchScript 模型的教程,促进将 TorchScript 模型集成到 C++ 应用程序中,以增强性能和多功能性。
总结
在本指南中,我们探讨了将 Ultralytics YOLO11 模型导出为 TorchScript 格式的过程。通过遵循提供的说明,您可以优化 YOLO11 模型的性能,并获得在各种平台和环境中部署它们的灵活性。
有关更多详细信息,请访问 TorchScript 官方文档。
此外,如果您想了解更多关于其他 Ultralytics YOLO11 集成的信息,请访问我们的 集成指南页面。您会在那里找到大量有用的资源和见解。
常见问题解答
什么是 Ultralytics YOLO11 模型导出到 TorchScript?
将 Ultralytics YOLO11 模型导出到 TorchScript 可以实现灵活的跨平台部署。TorchScript 是 PyTorch 生态系统的一部分,有助于模型的序列化,这些模型随后可以在不支持 Python 的环境中执行。这使其非常适合在嵌入式系统、C++ 环境、移动应用程序甚至网络浏览器中部署模型。导出到 TorchScript 可以提高 YOLO11 模型在不同平台上的性能和适用性。
如何使用 Ultralytics 将我的 YOLO11 模型导出到 TorchScript?
要将 YOLO11 模型导出到 TorchScript,您可以使用以下示例代码:
用法
from ultralytics import YOLO
# 加载 YOLO11 模型
model = YOLO("yolo11n.pt")
# 将模型导出为 TorchScript 格式
model.export(format="torchscript") # 创建 'yolo11n.torchscript'
# 加载导出的 TorchScript 模型
torchscript_model = YOLO("yolo11n.torchscript")
# 运行推理
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
有关导出过程的更多详细信息,请参阅 Ultralytics 导出文档。
为什么我应该使用 TorchScript 来部署 YOLO11 模型?
使用 TorchScript 部署 YOLO11 模型具有以下几个优势:
- 可移植性:导出的模型可以在不需要 Python 的环境中运行,例如 C++ 应用程序、嵌入式系统或移动设备。
- 优化:TorchScript 支持静态图执行和即时(JIT)编译,可以优化模型性能。
- 跨语言集成:TorchScript 模型可以集成到其他编程语言中,增强灵活性和扩展性。
- 序列化:模型可以被序列化,允许在平台无关的环境中加载和推理。
有关部署的更多见解,请访问 PyTorch Mobile 文档、TorchServe 文档 和 C++ 部署指南。
导出 YOLO11 模型到 TorchScript 的安装步骤是什么?
要安装导出 YOLO11 模型所需的包,请使用以下命令:
有关详细说明,请访问 Ultralytics 安装指南。如果在安装过程中遇到任何问题,请参阅 常见问题指南。
如何部署我导出的 TorchScript YOLO11 模型?
将 YOLO11 模型导出为 TorchScript 格式后,您可以在各种平台上部署它们:
- C++ API:适用于低开销、高效率的生产环境。
- 移动部署:使用 PyTorch Mobile 进行 iOS 和 Android 应用程序。
- 云部署:利用 TorchServe 等服务进行可扩展的服务器端部署。
探索在这些环境中部署模型的综合指南,以充分利用 TorchScript 的功能。