onnxruntime生成及部署

1、c++环境部署

1.1 VS2019配置ONNXRuntime c++环境

在github上查看 pytorch1.8.1对应的版本是onnx runtime v1.8.1
我的pytorch是1.12 所以下载的是onnx runtime v1.12.0 gpu 版本
选择cpu或者gpu : https://onnxruntime.ai/
下载nupkg包 链接:https://www.nuget.org/packages/Microsoft.ML.OnnxRuntime
下载得到microsoft.ml.onnxruntime.1.7.0.nupkg文件
通过使用vs2019 运行这个文件,可以的得到onnx的头文件和库文件
具体步骤如下:

1.1 先建一个文件夹,文件名可以随意,然后将nupkg文件拷贝进去

onnxruntime生成及部署_第1张图片

1.1.2 新建c++控制台项目,打开程序包管理器控制台

Install-Package Microsoft.ML.OnnxRuntime.gpu -Source E:\wxh-install\onnx2
onnxruntime生成及部署_第2张图片

1.2 配置opencv、onnxruntime

1.2.1包含目录

E:\wxh-install\Microsoft.ML.OnnxRuntime.Gpu.1.12.0\build\native\include
在这里插入图片描述

1.2.2 库目录

E:\wxh-install\Microsoft.ML.OnnxRuntime.Gpu.1.12.0\runtimes\win-x64\native
在这里插入图片描述

1.2.3 链接器-输入-附加依赖项

onnxruntime.lib
cublas.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
cufft.lib
cufftw.lib
curand.lib
cusolver.lib
cusparse.lib
nppc.lib
nppial.lib
nppicc.lib
nppidei.lib
nppif.lib
nppig.lib
nppim.lib
nppist.lib
nppisu.lib
nppitc.lib
npps.lib
nvblas.lib
nvml.lib
nvrtc.lib
OpenCL.lib
cudnn.lib
ade.lib
IlmImf.lib
ittnotify.lib
libjpeg-turbo.lib
libopenjp2.lib
libpng.lib
libprotobuf.lib
libtiff.lib
libwebp.lib
opencv_aruco455.lib
opencv_barcode455.lib
opencv_bgsegm455.lib
opencv_bioinspired455.lib
opencv_calib3d455.lib
opencv_ccalib455.lib
opencv_core455.lib
opencv_cudaarithm455.lib
opencv_cudabgsegm455.lib
opencv_cudacodec455.lib
opencv_cudafeatures2d455.lib
opencv_cudafilters455.lib
opencv_cudaimgproc455.lib
opencv_cudalegacy455.lib
opencv_cudaobjdetect455.lib
opencv_cudaoptflow455.lib
opencv_cudastereo455.lib
opencv_cudawarping455.lib
opencv_cudev455.lib
opencv_datasets455.lib
opencv_dnn455.lib
opencv_dnn_objdetect455.lib
opencv_dnn_superres455.lib
opencv_dpm455.lib
opencv_face455.lib
opencv_features2d455.lib
opencv_flann455.lib
opencv_fuzzy455.lib
opencv_gapi455.lib
opencv_hdf455.lib
opencv_hfs455.lib
opencv_highgui455.lib
opencv_imgcodecs455.lib
opencv_imgproc455.lib
opencv_img_hash455.lib
opencv_intensity_transform455.lib
opencv_line_descriptor455.lib
opencv_mcc455.lib
opencv_ml455.lib
opencv_objdetect455.lib
opencv_optflow455.lib
opencv_phase_unwrapping455.lib
opencv_photo455.lib
opencv_plot455.lib
opencv_quality455.lib
opencv_rapid455.lib
opencv_reg455.lib
opencv_rgbd455.lib
opencv_saliency455.lib
opencv_shape455.lib
opencv_stereo455.lib
opencv_stitching455.lib
opencv_structured_light455.lib
opencv_superres455.lib
opencv_surface_matching455.lib
opencv_text455.lib
opencv_tracking455.lib
opencv_video455.lib
opencv_videoio455.lib
opencv_videostab455.lib
opencv_wechat_qrcode455.lib
opencv_xfeatures2d455.lib
opencv_ximgproc455.lib
opencv_xobjdetect455.lib
opencv_xphoto455.lib
quirc.lib
zlib.lib

1.2.4 gpu运行

以下三个dll 复制到运行目录下
onnxruntime.dll
onnxruntime_providers_cuda.dll
onnxruntime_providers_shared.dll

2、c# nuget环境安装

2.1

dll放到\bin\Debug\netcoreapp3.1目录下

直接运行代码会报错
c#调用dll System.AccessViolationException:“Attempted to read or write protected memory. This is often an indication that other memory is corrupt.”

2.2 安装onnxruntime

onnxruntime生成及部署_第3张图片

你可能感兴趣的:(c#,c++)