使用 Neural Magic 的 DeepSparse 引擎优化 YOLO11 推理
在各种硬件上部署目标检测模型(如Ultralytics YOLO11)时,您可能会遇到独特的优化问题。这时,YOLO11与Neural Magic的DeepSparse Engine的集成就派上用场了。它改变了YOLO11模型的执行方式,并能够在CPU上直接实现GPU级别的性能。
本指南向您展示了如何使用 Neural Magic 的 DeepSparse 部署 YOLO11,如何运行推理,以及如何对性能进行基准测试以确保其得到优化。
SparseML EOL
Neural Magic 是 于 2025 年 1 月被 Red Hat 收购,并且正在弃用他们的社区版本 deepsparse
, sparseml
, sparsezoo
和 sparsify
库。更多信息,请参见发布的通知 在 Readme 文件中 sparseml
GitHub 仓库.
Neural Magic 的 DeepSparse
Neural Magic's DeepSparse 是一种推理运行时,旨在优化神经网络在 CPU 上的执行。它应用稀疏性、剪枝和量化等先进技术,以显著降低计算需求,同时保持准确性。DeepSparse 为跨各种设备的高效且可扩展的 神经网络 执行提供了一种敏捷的解决方案。
将 Neural Magic 的 DeepSparse 与 YOLO11 集成的优势
在使用 DeepSparse 部署 YOLO11 之前,让我们先了解使用 DeepSparse 的优势。一些关键优势包括:
- 增强的推理速度: 达到高达 525 FPS(在 YOLO11n 上),与传统方法相比,显着提高了 YOLO11 的推理能力。
- 优化模型效率: 通过剪枝和量化来提高 YOLO11 的效率,从而减小模型尺寸和计算需求,同时保持准确性。
-
标准 CPU 上的高性能:在 CPU 上提供类似 GPU 的性能,为各种应用提供更易于访问且经济高效的选择。
-
简化的集成和部署:提供用户友好的工具,可轻松将 YOLO11 集成到应用程序中,包括图像和视频注释功能。
-
支持多种模型类型: 兼容标准和稀疏优化的 YOLO11 模型,增加了部署的灵活性。
-
经济高效且可扩展的解决方案: 降低运营费用,并提供高级对象检测模型的可扩展部署。
Neural Magic 的 DeepSparse 技术如何工作?
Neural Magic 的 Deep Sparse 技术灵感来源于人脑在神经网络计算中的效率。它采用了大脑的两个关键原则,如下所示:
-
稀疏性: 稀疏化过程包括从深度学习网络中修剪冗余信息,从而在不影响准确性的前提下,生成更小、更快的模型。 这项技术显著降低了网络的规模和计算需求。
-
引用局部性:DeepSparse 使用独特的执行方法,将网络分解为 Tensor Columns。这些列按深度方向执行,完全适合 CPU 的缓存。这种方法模仿了大脑的效率,最大限度地减少了数据移动,并最大限度地利用了 CPU 的缓存。
创建在自定义数据集上训练的 YOLO11 稀疏版本
SparseZoo是由 Neural Magic 提供的开源模型仓库,提供一系列预稀疏化的 YOLO11 模型检查点。通过与 Ultralytics 无缝集成的 SparseML,用户可以使用简单的命令行界面,轻松地在特定数据集上微调这些稀疏检查点。
查看Neural Magic的SparseML YOLO11文档以获取更多详细信息。
用法:使用 DeepSparse 部署 YOLO11
使用 Neural Magic 的 DeepSparse 部署 YOLO11 涉及几个简单的步骤。在深入了解使用说明之前,请务必查看 Ultralytics 提供的 YOLO11 模型系列。这将帮助您选择最适合您项目要求的模型。以下是如何开始。
步骤 1:安装
要安装所需的软件包,请运行:
安装
# Install the required packages
pip install deepsparse[yolov8]
步骤 2:将 YOLO11 导出为 ONNX 格式
DeepSparse Engine 需要 ONNX 格式的 YOLO11 模型。将您的模型导出为此格式对于与 DeepSparse 兼容至关重要。使用以下 CLI 命令导出 YOLO11 模型:
模型导出
# Export YOLO11 model to ONNX format
yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13
此命令将保存 yolo11n.onnx
模型到您的磁盘。
步骤 3:部署和运行推理
有了 ONNX 格式的 YOLO11 模型,您可以使用 DeepSparse 部署和运行推理。这可以通过其直观的 Python API 轻松完成:
部署和运行推理
from deepsparse import Pipeline
# Specify the path to your YOLO11 ONNX model
model_path = "path/to/yolo11n.onnx"
# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)
# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)
第四步:性能基准测试
重要的是检查您的 YOLO11 模型在 DeepSparse 上的性能是否达到最佳。您可以基准测试模型的性能,以分析吞吐量和延迟:
基准测试
# Benchmark performance
deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"
第五步:附加功能
DeepSparse 提供了额外的功能,用于在应用程序中实际集成 YOLO11,例如图像注释和数据集评估。
附加功能
# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolo11n.onnx"
# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo11n.onnx"
运行 annotate 命令会处理您指定的图像,检测对象,并保存带有边界框和分类的注释图像。注释图像将存储在 annotation-results 文件夹中。这有助于提供模型检测能力的可视化表示。
运行eval命令后,您将收到详细的输出指标,例如精确率、召回率和mAP(平均精度均值)。这提供了模型在数据集上性能的全面视图。此功能对于微调和优化您的YOLO11模型以适应特定用例特别有用,从而确保高精度和效率。
总结
本指南探讨了 Ultralytics 的 YOLO11 与 Neural Magic 的 DeepSparse Engine 的集成。它强调了这种集成如何增强 YOLO11 在 CPU 平台上的性能,从而提供 GPU 级别的效率和先进的神经网络稀疏技术。
有关更多详细信息和高级用法,请访问 Neural Magic 提供的 DeepSparse 文档。您还可以浏览 YOLO11 集成指南和在 YouTube 上观看演练会话。
此外,如需更广泛地了解各种 YOLO11 集成,请访问 Ultralytics 集成指南页面,您可以在其中发现各种其他令人兴奋的集成可能性。
常见问题
什么是 Neural Magic 的 DeepSparse Engine?它如何优化 YOLO11 的性能?
Neural Magic 的 DeepSparse 引擎是一种推理运行时,旨在通过稀疏性、剪枝和量化等先进技术来优化神经网络在 CPU 上的执行。通过将 DeepSparse 与 YOLO11 集成,您可以在标准 CPU 上实现类似 GPU 的性能,从而显著提高推理速度、模型效率和整体性能,同时保持准确性。有关更多详细信息,请查看 Neural Magic 的 DeepSparse 部分。
如何安装使用 Neural Magic 的 DeepSparse 部署 YOLO11 所需的软件包?
安装部署 YOLO11 与 Neural Magic 的 DeepSparse 所需的软件包非常简单。您可以使用 CLI 轻松安装它们。以下是您需要运行的命令:
pip install deepsparse[yolov8]
安装完成后,按照安装部分中提供的步骤设置您的环境,并开始将 DeepSparse 与 YOLO11 一起使用。
如何将 YOLO11 模型转换为 ONNX 格式以与 DeepSparse 一起使用?
要将 YOLO11 模型转换为 ONNX 格式(与 DeepSparse 兼容所必需的格式),您可以使用以下 CLI 命令:
yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13
此命令将导出您的YOLO11模型(yolo11n.pt
) 转换为 (yolo11n.onnx
),可以被 DeepSparse 引擎利用。有关模型导出的更多信息,请参见 模型导出章节.
如何在 DeepSparse Engine 上对 YOLO11 性能进行基准测试?
在 DeepSparse 上对 YOLO11 性能进行基准测试可帮助您分析吞吐量和延迟,以确保您的模型得到优化。您可以使用以下 CLI 命令来运行基准测试:
deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"
此命令将为您提供重要的性能指标。 有关更多详细信息,请参见基准测试性能部分。
在目标检测任务中,我为什么应该将 Neural Magic 的 DeepSparse 与 YOLO11 结合使用?
将 Neural Magic 的 DeepSparse 与 YOLO11 集成有以下几个好处:
- 增强的推理速度: 达到高达 525 FPS,显着提高了 YOLO11 的能力。
- 优化的模型效率: 使用稀疏性、剪枝和量化技术来减少模型大小和计算需求,同时保持准确性。
- 标准 CPU 上的高性能: 在经济高效的 CPU 硬件上提供类似 GPU 的性能。
- 简化的集成: 用于轻松部署和集成的用户友好工具。
- 灵活性: 支持标准和稀疏优化的 YOLO11 模型。
- 经济高效: 通过高效的资源利用来降低运营费用。
要更深入地了解这些优势,请访问将 Neural Magic 的 DeepSparse 与 YOLO11 集成的好处部分。