跳转至内容

使用 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, sparsezoosparsify 库。更多信息,请参见发布的通知 在 Readme 文件中 sparseml GitHub 仓库.

Neural Magic 的 DeepSparse

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 的缓存。

Neural Magic 的 DeepSparse 技术如何运作

创建在自定义数据集上训练的 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 集成的好处部分。



📅 创建于 1 年前 ✏️ 更新于 7 天前

评论