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快上一倍。
环境配置
模型的转化和推理对版本有要求,如果版本对应不上很可能出现千奇百怪的问题。
参考资料:
【pytorch模型转onnx模型】一些模型转化和加速推理的知识
将 PyTorch 模型转换为 ONNX 格式
使用 PyTorch 训练数据分析模型
将训练好的pytorch模型的pth文件转换成onnx模型(亲测成功)
pth转onnx