Link to this section将 YOLO26 模型导出为 TorchScript 以实现快速部署#
在不同环境(包括嵌入式系统、网页浏览器或对 Python 支持有限的平台)中部署 计算机视觉 模型,需要一种灵活且可移植的解决方案。TorchScript 专注于可移植性,以及在无法使用完整 Python 框架的环境中运行模型的能力。这使得它非常适合需要在各种设备或平台上部署计算机视觉功能的场景。
导出到 TorchScript 以序列化你的 Ultralytics YOLO26 模型,从而实现跨平台兼容和简化部署。在本指南中,我们将向你展示如何将 YOLO26 模型导出为 TorchScript 格式,让你更轻松地在更广泛的应用程序中使用它们。
Link to this section为什么要导出到 TorchScript?#

TorchScript 由 PyTorch 的创建者开发,是一个强大的工具,用于在各种平台上优化和部署 PyTorch 模型。将 YOLO26 模型导出到 TorchScript 对于从研究转向实际应用至关重要。TorchScript 作为 PyTorch 框架的一部分,通过允许 PyTorch 模型在不支持 Python 的环境中使用,帮助实现更顺畅的过渡。
该过程涉及两种技术:追踪 (tracing) 和脚本编写 (scripting)。追踪记录模型执行期间的操作,而脚本编写允许使用 Python 的子集来定义模型。这些技术确保了像 YOLO26 这样的模型即使在它们通常的 Python 环境之外也能发挥其威力。

TorchScript 模型还可以通过算子融合 (operator fusion) 和内存使用优化等技术进行优化,从而确保高效执行。导出到 TorchScript 的另一个优势是它具有加速跨各种硬件平台模型执行的潜力。它为你创建了一个独立的、生产就绪的 PyTorch 模型表示,可以集成到 C++ 环境、嵌入式系统中,或部署在 Web 或移动应用程序中。
Link to this sectionTorchScript 模型的主要功能#
TorchScript 是 PyTorch 生态系统的关键部分,为优化和部署 深度学习 模型提供了强大的功能。

以下是使 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 应用中执行这些模型。这实现了低延迟的离线推理能力,增强了用户体验和 数据隐私。
-
云端部署:可以使用 TorchServe 等解决方案将 TorchScript 模型部署到基于云的服务器上。它提供了模型版本控制、批处理和指标监控等功能,可用于生产环境中的可扩展部署。使用 TorchScript 进行云端部署可以使你的模型通过 API 或其他 Web 服务被访问。
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导出参数#
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
format | str | 'torchscript' | 导出模型的目标格式,定义了与各种部署环境的兼容性。 |
imgsz | int 或 tuple | 640 | 模型输入的期望图像尺寸。可以是一个用于正方形图像的整数,或者是一个用于特定尺寸的元组 (height, width)。 |
dynamic | bool | False | 允许动态输入尺寸,增强处理不同图像尺寸时的灵活性。 |
quantize | int 或 str | None | 量化精度:16 (FP16) 需要通过 device=0 进行 GPU 导出;32/未设置则为 FP32。此选项取代了已弃用的 half 标志。 |
optimize | bool | False | 对移动设备应用优化,可能减小模型大小并提升性能。 |
nms | bool | False | 添加非极大值抑制 (NMS),这是准确高效的检测后处理所必需的。 |
batch | int | 1 | 指定导出模型的推理批次大小,或导出模型在 predict 模式下并发处理的最大图像数量。 |
device | str | None | 指定导出所用的设备: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 模型的深入说明,请查看以下资源:
-
掌握服务端部署:了解如何使用 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 的功能。