ONNX 导出YOLO11 模型
通常,在部署
计算机视觉
模型时,您需要一种既灵活又能与多个平台兼容的模型格式。
将
Ultralytics YOLO11
将模型导出为ONNX 格式可简化部署并确保在各种环境中实现最佳性能。本指南将向您展示如何轻松地将YOLO11 模型转换为ONNX ,并增强其在实际应用中的可扩展性和有效性。
ONNX 和ONNX Runtime
ONNX
是 Facebook 和Microsoft 最初开发
的
一个社区项目。ONNX 的持续开发得到了 IBM、亚马逊(通过 AWS)和Google 等多个组织的合作支持。该项目旨在创建一种开放文件格式,用于表示
机器学习
模型,使其能够在不同的人工智能框架和硬件中使用。
ONNX 模型可用于在不同框架之间无缝转换。例如,在PyTorch 中训练的
深度学习
模型可以导出为ONNX 格式,然后轻松导入TensorFlow 。
另外,ONNX 模型可与ONNX Runtime 配合使用。
ONNX Runtime
是机器学习模型的通用跨平台加速器,与PyTorch 等框架兼容、
TensorFlow
、TFLite、scikit-learn 等框架兼容。
ONNX 运行时(Runtime)通过利用特定硬件功能优化ONNX 模型的执行。通过这种优化,模型可以在各种硬件平台(包括 CPU、GPU 和专用加速器)上高效、高性能地运行。
无论是独立使用还是与ONNX Runtime 配合使用,ONNX 都能为机器学习
模型的部署
和兼容性提供灵活的解决方案。
ONNX 机型的主要特点
ONNX 能够处理各种格式,主要归功于以下主要功能:
通用模型表示法
:ONNX 定义了一套通用运算符(如卷积、层等)和一种标准数据格式。当一个模型转换为ONNX 格式时,其架构和权重就会转换为这种通用表示法。这种统一性可确保任何支持ONNX 的框架都能理解模型。
版本和向后兼容性
:ONNX 为其操作员维护一个版本系统。这确保了即使标准在不断发展,旧版本创建的模型仍可继续使用。向后兼容性是防止模型迅速过时的重要功能。
基于图形的模型表示法
:ONNX 将模型表示为计算图。这种基于图的结构是表示机器学习模型的通用方法,其中节点表示操作或计算,边表示它们之间流动的张量。这种格式很容易适应各种同样以图表示模型的框架。
工具和生态系统
:ONNX 周围有丰富的工具生态系统,可帮助进行模型转换、可视化和优化。这些工具使开发人员更容易使用ONNX 模型,并在不同框架之间无缝转换模型。
常见用法ONNX
在了解如何将YOLO11 模型导出为ONNX 格式之前,我们先来看看ONNX 模型通常用在什么地方。
CPU 部署
ONNX 由于与ONNX Runtime 兼容,模型通常部署在 CPU 上。该运行时针对CPU 的执行进行了优化。它大大提高了推理速度,使CPU 的实时部署变得可行。
支持的部署选项
ONNX 模型通常用于 CPU,但也可部署在以下平台上:
GPU 加速
:ONNX 完全支持GPU 加速,尤其是NVIDIA CUDA 。这样就能在NVIDIA GPU 上高效执行需要高计算能力的任务。
边缘和移动设备
:ONNX 可扩展到边缘和移动设备,非常适合在设备上进行实时推理。它重量轻,与边缘硬件兼容。
网络浏览器
:ONNX 可直接在网络浏览器中运行,为基于网络的交互式动态人工智能应用提供动力。
将YOLO11 模型导出到ONNX
您可以通过将YOLO11 模型转换为ONNX 格式,扩大模型兼容性和部署灵活性。
要安装所需的软件包,请运行