模型部署遇到的问题

1.不是有效的Win32应用程序

 

 更改项目中的配置类型:

 

 从网上下载的工程,之前人家是用来封装成库(dll)的,改成exe就好了。

vs学习问题 关于打开程序时不是有效的Win32应用程序_Lay_Nobody的博客-CSDN博客_vs不是有效的win32应用程序

2.ONNX转为TensorRT出问题(未解决)

(1) 

(2)

[11/20/2022-15:51:12] [W] [TRT] onnx2trt_utils.cpp:366: Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.
[11/20/2022-15:51:12] [W] [TRT] onnx2trt_utils.cpp:392: One or more weights outside the range of INT32 was clamped
[11/20/2022-15:51:12] [E] [TRT] [shuffleNode.cpp::nvinfer1::builder::ShuffleNode::symbolicExecute::387] Error Code 4: Internal Error (Reshape_100: IShuffleLayer applied to shape tensor must have 0 or 1 reshape dimensions: dimensions were [-1,2])
[11/20/2022-15:51:12] [E] [TRT] ModelImporter.cpp:773: While parsing node number 110 [Pad -> "onnx::Conv_259"]:
[11/20/2022-15:51:12] [E] [TRT] ModelImporter.cpp:774: --- Begin node ---
[11/20/2022-15:51:12] [E] [TRT] ModelImporter.cpp:775: input: "onnx::Shape_224"

原因:ONNX模型图太复杂,TensorRT无法识别INT64位的数据,需要先转换为INT32位

解决:(1) 在python环境中安装 onnx-simplifier

pip install onnx-simplifier

 (2)将之前的onnx文件简单化

python -m onnxsim model.onnx PaDiM.onnx

 (3)导入进C++,结果无异常

 把onnx模型转TensorRT模型的trt模型报错:Your ONNX model has been generated with INT64 weights. while TensorRT - 灰信网(软件开发博客聚合)

3.无法解析的外部符号 createInferBuilder_INTERNAL、无法解析外部符号。。。。。。

诸如此类错误,很大一部分原因是没有导入库文件,tensorRT中容易出现没有导入lib库的情况,路径为:

 将lib输入进链接器->输入->附加依赖项

 添加以下lib:

4.报错:【C++】错误 C4996 ‘localtime‘:This function or variable may be unsafe.

 C4996    'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
解决方案:项目——属性——C/C++——命令行——其它选项  输入 /D _CRT_SECURE_NO_WARNINGS 

 【C++】错误 C4996 ‘localtime‘:This function or variable may be unsafe._wolves_liu的博客-CSDN博客_严重性代码说明项目文件行禁止显示状态 错误c4996'localtime': this func

5. 

6.[genericreformat.cu::genericReformat::executeMemcpy::1335] Error Code 1: Cuda Runtime (invalid argument)

7.安装onnxruntime时报错,应用程序无法正常启动(0xc0000007b),请单击“确定”关闭应用程序。

 

 问题:没有把onnxruntime中的lib文件copy到Debug目录下

 拷贝过来后,问题解决。

Visual Studio2019 应用程序无法正常启动0xc000007b_AI视觉网奇的博客-CSDN博客_su2019 0xc000007b

vs2019配置onnxruntime:VS2019 快速配置Onnxruntime环境_小wu学cv的博客-CSDN博客_onnxruntime_cxx_api.h 

onnxruntime下载:

Releases · microsoft/onnxruntime · GitHub 

猜你喜欢

转载自blog.csdn.net/qq_60609496/article/details/127813124