小工具知识网

当前位置: 首页 > 行业知识 > VS c++ onnxruntime 环境配置、onnx教程、部署推理模型、sklearn pkl模型转onnx、问题汇总

行业知识

VS c++ onnxruntime 环境配置、onnx教程、部署推理模型、sklearn pkl模型转onnx、问题汇总

2026-11-10 05:44:09 来源:互联网转载

目录

一、初步认识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 的主要特点和目标包括:

  1. 开放性: ONNX 是一个开放标准,由微软、Facebook和其他合作伙伴共同推动。它的目标是促进深度学习生态系统的互操作性。
  2. 跨平台: ONNX 支持在不同的深度学习框架之间交换模型。目前,它支持诸如PyTorch、TensorFlow、MXNet等流行的深度学习框架。
  3. 灵活性: ONNX 支持多种深度学习模型的表示,包括卷积神经网络(CNN)、循环神经网络(RNN)和其他常见的神经网络架构。
  4. 部署: 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 

上一篇:电脑怎么直连服务器?

下一篇:第三方支付牌照出让,具备何种优势的买方容易成功