C# 调用YoloSharp.Gpu,调用Microsoft.ML.OnnxRuntime.Gpu出错126
今天使用C#调用YoloSharp.Gpu,加载onnx模型,然后检测,代码很简单。
// Load the YOLO predictor
predictor ??= new YoloPredictor(@"path to your.onnx");
// Run model
var result = predictor.Detect(@"path to your image");
一运行就爆错ONNXRuntimeError : 1 : FAIL : LoadLibrary failed with error 12。
Nuget改用不是CPU版本的YoloSharp就没问题,这就奇怪了。后来查资料发现有人说是ONNXRuntime、CUDA、CUDNN三者的版本不对应,但是我的版本是对应的,完全符合官方要求啊。
这样不能运行就没有天理了,网上的解决方案可以说是乱七八糟,微软爆出来的错误指导方向就是错的。
YoloSharp.Gpu:6.0.1
ONNXRuntime:1.20.0
CUDA:12.6.3
CUDNN:9.6.0
对应关系参考官方文档:https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html
Microsoft.ML.OnnxRuntime.OnnxRuntimeException:“[ErrorCode:RuntimeException] D:\a\_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1539
onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load
"C:\Users\Vincent\source\repos\WpfApp1\WpfApp1\bin\x64\Debug\net8.0-windows\runtimes\win-x64\native\onnxruntime_providers_cuda.dll"
后来研究发现onnxruntime_providers_cuda.dll缺少依赖,使用Dependencies查找发现,缺少cudnn64_9.dll。这个文件就是CUDNN的安装目录里面的,所以果断把C:\Program Files\NVIDIA\CUDNN\v9.6\bin\12.6\里面所有的文件都复制到exe目录里面,完美解决!!!
话又说回来,微软不应该爆缺少依赖么,真是瞎杰宝爆
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2020-01-08 Flutter 星标已正式超过React Native
2020-01-08 查看Github星标排行榜