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++,结果无异常
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
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下载: