ONNX,全称: Open Neural Network Exchange(ONNX,开放神经网络交换),是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。
ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch, MXNet)可以采用相同格式存储模型数据并交互。ONNX的规范及代码主要由微软,亚马逊 ,Facebook 和 IBM 等公司共同开发,以开放源代码的方式托管在Github上。目前官方支持加载ONNX模型并进行推理的深度学习框架有:Caffe2, PyTorch,MXNet,ML.NET,TensorRT和Microsoft CNTK,并且TensorFlow也非官方的支持ONNX。
ONNX模型可以看作是模型转化之间的中间模型,同时也是支持做推理的。一般来说,onnx的推理 速度要比pytorch快上一倍。
环境配置
- CUDA版本:11.3.1
- cuDNN版本:8.2.1
- TensorRT版本:8.0.3.4
- 显卡:1650
- pytorch:1.10.2
模型的转化和推理对版本有要求,如果版本对应不上很可能出现千奇百怪的问题。