ONNX - 环境设置

设置环境以使用 ONNX 对于创建、转换和部署机器学习模型至关重要。在本教程中,我们将学习如何安装 ONNX、其依赖项以及设置 ONNX 运行时以实现高效的模型推理。

ONNX 环境设置涉及安装 ONNX 运行时、其依赖项以及转换和运行 ONNX 格式的机器学习模型所需的工具。

为 Python 设置 ONNX

Python 是 ONNX 开发最常用的语言。要在 Python 中设置 ONNX 环境,您需要安装 ONNX 和用于流行框架(如 PyTorch、TensorFlow 和 Scikit-learn)的模型导出库。需要 ONNX 才能将模型转换并导出为 ONNX 格式。

pip install onnx

安装 ONNX Runtime

ONNX Runtime 是运行 ONNX 格式模型的主要工具。它适用于 CPU 和 GPU(CUDA 和 ROCm)环境。

为 CPU 安装 ONNX 运行时

要安装 ONNX 运行时的 CPU 版本,只需在终端中运行以下命令 −

pip install onnxruntime

这将安装用于 CPU 执行的基本 ONNX 运行时包。

为 GPU 安装 ONNX 运行时

如果您想利用 GPU 加速,ONNX 运行时支持 CUDA(NVIDIA)和 ROCm(AMD)平台。 ONNX Runtime 支持的默认 CUDA 版本为 11.8。

pip install onnxruntime-gpu

这将安装适用于 CUDA 11.x 的 ONNX Runtime

安装模型导出库

根据您使用的框架,安装用于转换模型的相应库。

  • PyTorch:PyTorch 内置了 ONNX 支持。以下是命令。

    pip install torch
    
  • TensorFlow:安装tf2onnx以转换 TensorFlow 模型。

    pip install tf2onnx
    
  • Scikit-learn:使用skl2onnx从 Scikit-learn 导出模型。

    pip install skl2onnx
    

为其他语言设置 ONNX

C#/C++/WinML

对于 C# 和 C++ 项目,ONNX Runtime 提供对 Windows ML (WinML) 和 GPU 加速的原生支持。我们可以使用以下命令在 C# 中安装 ONNX Runtime for CPU −

dotnet add package Microsoft.ML.OnnxRuntime

同样,使用以下命令安装 ONNX Runtime for GPU (CUDA) −

dotnet add package Microsoft.ML.OnnxRuntime.Gpu

JavaScript

ONNX Runtime 也可用于浏览器和 Node.js 环境中的 JavaScript。以下是为浏览器安装 ONNX Runtime 的命令 −

npm install onnxruntime-web

同样,要为 Node.js 安装 ONNX Runtime,请使用以下命令 −

npm install onnxruntime-node

为移动设备 (iOS/Android) 设置 ONNX

可以为移动平台设置 ONNX Runtime,包括 iOS 和 Android。

  • iOS:将 ONNX Runtime 添加到您的 Podfile 并运行 pod install

    pod 'onnxruntime-c'
    
  • Android:在您的 Android Studio 项目中,将 ONNX Runtime 添加到您的 build.gradle 文件中 −

    dependencies {
       implementation 'com.microsoft.onnxruntime
       :onnxruntime-android:latest.release'
    }