如何⽤visualstudio2019配置OnnxRuntime
这⾥写⾃定义⽬录标题
⼀直以来都是⽤的linux系统,突然⾯对windows有点不知所措,这⾥记录⼀下,如何⽤vs2019配置OnnxRunTime ⼀、下载onnx库⽂件
⼆、⽤visual studio 2019 解析nupkg包
1、⾸先⽤vs2019新建⽴⼀个项⽬
选择 ⼯具->NuGet管理包->程序包管理控制台
然后输⼊
Install-Package Microsoft.ML.OnnxRuntime -Source  E:\git\cache
这⾥E:\git\cache⾥⾯放着 untime.1.8.0.nupkg⽂件⽂件注意,这⾥⼀定要建⽴个⼯程,才能执⾏以上的⽂件,否则会报
Install-Package :不到项⽬“Default”。
的错误。
完事后,在⼀下红框中的路径下,
有个\packages\Microsoft.ML.OnnxRuntime.1.8.0有⼏个⽂件
build下的include⽂件夹,就是onnxruntime的接⼝头⽂件
runtime⽂件夹下有着各个系统下的算法库⽂件。
这⾥,本⽂选择win-x64\native⽂件夹,这⾥放着OnnxRunTime的动态库和静态库。
这⾥,ONNX的nupkg⽂件已经解析完毕。
三、⽤vs2019中的cmake来配置ONNXRunTime
习惯了linux系统的我,还是更喜欢⽤cmake来配置⼯程
⽤vs2019建⽴⼀个cmake项⽬
< ⾥添加 ort 的 头⽂件和算法库的路径等
cmake_minimum_required (VERSION 3.8)
project ("CMakeProject1")
include_directories("E:/code/Microsoft.ML.OnnxRuntime.1.8.0/build/native/include")
include_directories("E:/opencv4.5.2/opencv/build/include")
link_directories("E:/code/Microsoft.ML.OnnxRuntime.1.8.0/runtimes/win-x64/native")
link_directories("E:/opencv4.5.2/opencv/build/x64/vc15/lib")
#link_libraries(onnxruntime)
ADD_EXECUTABLE(hello CMakeProject1.cpp)
target_link_libraries(hello onnxruntime opencv_world452)
main.cpp⽂件夹,
#include<iostream>
#include<assert.h>
#include<vector>
#include<onnxruntime_cxx_api.h>
#include<string>
#include<opencv2/opencv.hpp>
int main(int argc,char* argv[]){
为什么现在都用cmakeOrt::Env env(ORT_LOGGING_LEVEL_WARNING,"test");
Ort::SessionOptions session_options;
session_options.SetIntraOpNumThreads(1);
session_options.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_BASIC);
#ifdef _WIN32
const wchar_t* model_path = L"E:/code/CMakeProject1/CMakeProject1/models/"; #else
const char* model_path ="E:/code/CMakeProject1/CMakeProject1/models/";
#endif
Ort::Session session(env, model_path, session_options);
// print model input layer (node names, types, shape etc.)
Ort::AllocatorWithDefaultOptions allocator;
size_t num_input_nodes = session.GetInputCount();
std::cout << session.GetInputName(0, allocator)<< std::endl;
std::cout << session.GetOutputName(0, allocator)<< std::endl;
return0;
}
运⾏调试时,可能会报不到 onnxruntime.dll 的报错
这个主要是由于windows不到库所在的路径导致的。
解决⽅案1:
将 onnxruntime.dll⽂件拷贝到可执⾏当前⽬录
解决⽅案2:
将 onnxruntime.dll 所在的⽂件夹添加到系统环境变量。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。