Open SuperJinggg opened 2 weeks ago
@SuperJinggg 使用 DeployCGDet 必须要求是静态模型,也就是Batch确定的,并且输入输入要与Batch一样, DeployDet 没有这个限制 (因为 DeployCGDet 使用了 cuda graph)。
假设 Batch 是 4, 那么predict传递的vector 长度也必须为4。怀疑是batch与输入大小不匹配。
但错误是在创建model时报的错,这时候并没有进行predict,即没有输入。
但错误是在创建model时报的错,这时候并没有进行predict,即没有输入。
如果是在创建时出现问题,那只可能是你的模型节点个数与期望不符,发我你的ONNX在netron可视化的截图,看看输入和输出。
应该不是模型的问题,如果按照您的教程运行是完全成功的,只是我在打包成动态库后出现的问题。
应该不是模型的问题,如果按照您的教程运行是完全成功的,只是我在打包成动态库后出现的问题。
@SuperJinggg 那就只能是你打包或者是调用代码写的问题,不可能是源码的问题。源码中报错vector subscript out of range
只能是模型中的输入输出与源码不匹配,而且Demo中的例子本身就是以动态库的方式运行。
好吧,感谢大佬解惑,我只是将demo中的代码写进一个简单的mfc框架。我再仔细去康康
好吧,感谢大佬解惑,我只是将demo中的代码写进一个简单的mfc框架。我再仔细去康康
你可以发我下你的MFC调用部分的代码,我帮你看看。
大佬,这个有点复杂,目前我在考虑直接把您的源代码嵌入进去,我想请问一下plugin这个我需要吗?
Plugin文件夹的代码不需要,这个是编译插件的。只需要include和source文件夹的代码。source中的pybind下的代码也不需要,这个是用来映射到Python的。
我使用MD方式编译将代码打成deploy.dll动态库。然后在mfc的demo中调用。 使用DeployDet时完全正常,但是使用DeployCGDet(model = std::make_shared(enginePath, is_obb);)报错
`Program: E:\yolov8Testv1\Yolov8Detect\x64\Debug\deploy.dll
File: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include\vector
Line: 1733
Expression: vector subscript out of range
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.` 报错信息太少了,我无法定位错误。请问大佬对这个错误了解吗?