PaddleX icon indicating copy to clipboard operation
PaddleX copied to clipboard

Paddlex Develop show error Unable to load DLL 'model_infer.dll' or one of its dependencies at C#

Open kylechen77 opened this issue 3 years ago • 10 comments

Checklist:

描述问题

复现

  1. c++部署方式

    • 您是否按照文档教程已经正常运行我们提供的demo

    • 您是否在demo基础上修改代码内容?还请您提供运行的代码

  2. c#部署方式

    • 您是否按照文档教程已经正常运行我们提供的demo

    • 您是否在demo基础上修改代码内容?还请您提供运行的代码

    • 如果c# demo无法正常运行,c++ demo是否已经正常运行?

  3. 您使用的模型数据集是?

  4. 请提供您出现的报错信息及相关log

环境

  1. 如果您使用的是python部署方式,请提供您使用的PaddlePaddle、PaddleX版本号、Python版本号

  2. 如果您使用的是c++或c#部署方式,请提供您使用的PaddleX分支、推理引擎(例如PaddleInference)版本号

  3. 请提供您使用的操作系统信息,如Linux/Windows/MacOS

  4. 请问您使用的CUDA/cuDNN的版本号是?

**我的配置如下: Visual studio 2022, CUDA10.2;CUDNN7.6.5;OPENCV 3..4.6;Paddlex-inference avx_mkl_cuda10.2_cudnn7.6.5rtt7.0.11;TensorRT7.0.0.11

不能装载模型,运行C#的官方DEMO 报错如下: System.DllNotFoundException HResult=0x80131524 Message=Unable to load DLL 'model_infer.dll' or one of its dependencies: 找不到指定的模块。 (0x8007007E) Source=WinFormsApp_final StackTrace: 在 WinFormsApp_final.Form1.InitModel(String model_type, String model_filename, String params_filename, String cfg_file, Boolean use_gpu, Int32 gpu_id, Byte& paddlex_model_type) 在 WinFormsApp_final.Form1.button1_Click(Object sender, EventArgs e) 在 D:\projects\deepMatch\packagecmake_paddleX\PaddleX-develop\deploy\cpp\docs\csharp_deploy\c#\Form1.cs 中: 第 401 行

此异常最初是在此调用堆栈中引发的: WinFormsApp_final.Form1.button1_Click(object, System.EventArgs) (位于 Form1.cs 中)**

kylechen77 avatar Jun 22 '22 03:06 kylechen77

我的配置如下: Visual studio 2022, CUDA10.2;CUDNN7.6.5;OPENCV 3..4.6;Paddlex-inference avx_mkl_cuda10.2_cudnn7.6.5rtt7.0.11;TensorRT7.0.0.11

不能装载模型,运行C#的官方DEMO 报错如下: System.DllNotFoundException HResult=0x80131524 Message=Unable to load DLL 'model_infer.dll' or one of its dependencies: 找不到指定的模块。 (0x8007007E) Source=WinFormsApp_final StackTrace: 在 WinFormsApp_final.Form1.InitModel(String model_type, String model_filename, String params_filename, String cfg_file, Boolean use_gpu, Int32 gpu_id, Byte& paddlex_model_type) 在 WinFormsApp_final.Form1.button1_Click(Object sender, EventArgs e) 在 D:\projects\deepMatch\packagecmake_paddleX\PaddleX-develop\deploy\cpp\docs\csharp_deploy\c#\Form1.cs 中: 第 401 行

此异常最初是在此调用堆栈中引发的: WinFormsApp_final.Form1.button1_Click(object, System.EventArgs) (位于 Form1.cs 中)

kylechen77 avatar Jun 22 '22 03:06 kylechen77

我是release编译的生成的model_infer.dll,并按照paddlex的部署指导把DLL复制到项目的Debug和Release下面 用Debug运行和Release运行C#的官方DEMO都不能load model_infer.dll

kylechen77 avatar Jun 22 '22 03:06 kylechen77

这个部署根本就不行,是不是这个模块放弃了?如果放弃了就关闭吧

kylechen77 avatar Jun 23 '22 02:06 kylechen77

我跟你是同样的问题,cuda11.2下使用2.3预编译库CUDA version: 11.2CUDNN version: v8.2TensorRT version: v8.0.1.6,c++demo可以正常跑,但是c#在初始化报错,换成V2.1预编译库,cuda11.0_cudnn8.0_avx_mkl-trt7.2.1.6,可以使用

jun20061588 avatar Jun 25 '22 06:06 jun20061588

我看到的情况是2.3好像都不行。没有一个能成的

kylecj77 avatar Jun 28 '22 01:06 kylecj77

@jun20061588 您好,我在CUDA version: 11.2CUDNN version: v8.2TensorRT version: v8.0.1.6下编译paddle_inference-avx_mkl_cuda11.2_cudnn8.2_avx_mkl-trt8.0.1.6的c++demo无法调用dll,但是同样的代码在cuda10.2正常运行,请问您编译的时候有什么注意事项吗?能否分享一下?

DreamMaker777 avatar Jun 28 '22 16:06 DreamMaker777

@kylecj77 我编译2.3版本的paddle_inference-avx_mkl_cuda11.2_cudnn8.2_avx_mkl-trt8.0.1.6也不行唉,cuda10.2就正常

DreamMaker777 avatar Jun 28 '22 16:06 DreamMaker777

@DreamMaker777 用python的吧,稳定一些

kylecj77 avatar Jun 29 '22 00:06 kylecj77

@DreamMaker777 我用的是官方提供的预编译库,没自己编译,严格按站他的版本要求来,c++ demo可以运行,只是C#没办法调用dll,

jun20061588 avatar Jul 05 '22 05:07 jun20061588

cuda相关的dll也要复制过去,可以参考C#案例中DLL的文件

lailuboy avatar Aug 06 '22 01:08 lailuboy