C# .NET环境下调用ONNX格式YOLOV8模型问题总结
我的环境是:
Visual Studio: 2019
显卡:
一、遇到问题
1、EntryPointNotFoundException:无法在DLL“onnxruntime”中找到名为“OrtGetApiBase”的入口点。差了下原因,入口点是启动项中的问题。
原因:之前用yolov7时安装的版本在C:\Windows\System32\ 文件夹下保存了onnxruntime.dll的版本,因此自动调用C盘的版本了。
解决:删掉启动项中的onnx相关动态库,在Nuget工具中重新下载Microsoft.OnnxRuntime.Gpu.Windows包
2、LoadLibrary failed with error 126 when trying to load onnxruntime_providers_cuda.dll。
原因:查了下原因,是版本兼容问题。公主是严格按照官网的介绍装的,CUDA:12.1,cuDNN: 8.9。安装的OnnxRuntime 1.18.0.
解决:1)后来用dumpbin查看了下onnxruntime_providers_cuda.dll的依赖,才发现依赖的是cuda11版本。重装cuda不如重装onnxruntime。于是改装onnxruntime 1.18.1还是出现这个问题。
2)有查了下1.18.1版本onnxruntime_providers_cuda.dll的依赖,又发现cudnn依赖的是9.x版本,而且cuda还是依赖11版本。
3) cudnn升级到9.1,Microsoft.OnnxRuntime.Gpu.Windows升级到1.19.1. 完美解决……