行业知识
VS c++ onnxruntime 环境配置、onnx教程、部署推理模型、sklearn pkl模型转onnx、问题汇总
目录
一、初步认识ONNX
二、pkl转ONNX+可视化模型
三、ONNX Runtime运行时
3.1 相关介绍(了解此运行时):
3.2 VS、c++部署onnxruntime
3.3 头文件引用的一些问题
四、问题汇总:
1. 类没有成员
2. 版本兼容问题
3. 3.“GetInputName“: 不是 “Ort::Session“ 的成员
官网:ONNX Runtime | Home
GitHub - microsoft/onnxruntime
一、初步认识ONNX
一图看懂ONNX模型格式
ONNX学习笔记
Onnx模型介绍_HelloWorldQAQ。的博客-CSDN博客
ONNX(Open Neural Network Exchange)是一个开放的深度学习模型交换格式,它的目标是提供一个标准化的桥梁,使得不同深度学习框架之间能够更轻松地共享和部署模型。
ONNX 的主要特点和目标包括:
- 开放性: ONNX 是一个开放标准,由微软、Facebook和其他合作伙伴共同推动。它的目标是促进深度学习生态系统的互操作性。
- 跨平台: ONNX 支持在不同的深度学习框架之间交换模型。目前,它支持诸如PyTorch、TensorFlow、MXNet等流行的深度学习框架。
- 灵活性: ONNX 支持多种深度学习模型的表示,包括卷积神经网络(CNN)、循环神经网络(RNN)和其他常见的神经网络架构。
- 部署: ONNX 不仅仅是一个模型表示格式,还提供了一些工具和库,使得用户能够在不同的硬件和软件环境中有效地部署模型。
一些学习资料:[推理部署] 全网最详细 ONNXRuntime C++/Java/Python 资料!
二、pkl转ONNX+可视化模型
python onnx版本:1.15.0
import joblibimport onnxmltoolsfrom onnxmltools.convert.common.data_types import FloatTensorTypeimport netronfrom sklearn.model_selection import train_test_split # 如果使用 scikit-learn 0.23 以上版本,请改用 sklearn.model_selection 而不是 sklearn.externals# 加载.pkl模型model = joblib.load('LinearRegressor.pkl')# 定义输入特征的类型和形状num_features = 1 # 你的特征数量initial_type = [('float_input', FloatTensorType([None, num_features]))]# 导出ONNX模型onnx_model = onnxmltools.convert.convert_sklearn(model, initial_types=initial_type)# 保存ONNX模型为文件onnxmltools.utils.save_model(onnx_model, 'do_LinearRegressor.onnx')# 指定你的 ONNX 模型路径onnx_model_path = 'do_LinearRegressor.onnx'# 启动 Netron 服务并在浏览器中打开可视化界面netron.start(onnx_model_path) 三、ONNX Runtime运行时
3.1 相关介绍(了解此运行时):
想深入了解可以看一下,如果想快速实践可以简单看一下或者跳过
模型部署之 ONNX ONNXRuntime
推理模型部署(一):ONNX runtime 实践
Everything You Want to Know About ONNX
MicroSoft onnx and onnx runtim
3.2 VS、c++部署onnxruntime
c++ onnxruntime版本:1.15.1
网址:Releases · microsoft/onnxruntime · GitHub
下载onnxruntime-win-x64-1.15.1.zip
将压缩包解压得到include与lib文件夹,添加到环境变量中,然后将lib中的dll放入release与debug中
#include #include #include #include int main() { const wchar_t* model_path = L"do_LinearRegressor.onnx"; try { Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "ONNX_C_API"); std::wcout
上一篇:电脑怎么直连服务器?