在机器上下载yolo-tensorrt项目,按照其测试步骤来操作,如下
在make
这一步报错。
1. 完整报错信息
In file included from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/trt_utils.h:38:0,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/ds_image.h:28,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/calibrator.h:29,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/calibrator.cpp:26:
/home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/mish.h:34:8: error: ‘int nvinfer1::MishPlugin::enq ueue(int, const void* const*, void* const*, void*, cudaStream_t)’ marked ‘override’, but does not override
int enqueue(int batchSize, const void* const* inputs, void* const* outputs, void* workspace,
^~~~~~~
In file included from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/trt_utils.h:39:0,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/ds_image.h:28,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/calibrator.h:29,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/calibrator.cpp:26:
/home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/chunk.h:34:7: error: ‘int nvinfer1::Chunk::enqueue (int, const void* const*, void* const*, void*, cudaStream_t)’ marked ‘override’, but does not override
int enqueue(int batchSize, const void* const* inputs, void* const* outputs, void* workspace,
^~~~~~~
In file included from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/trt_utils.h:40:0,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/ds_image.h:28,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/calibrator.h:29,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/calibrator.cpp:26:
/home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/hardswish.h:54:7: error: ‘int nvinfer1::Hardswish: :enqueue(int, const void* const*, void* const*, void*, cudaStream_t)’ marked ‘override’, but does not overri de
int enqueue(int batchSize, const void* const* inputs, void* const* outputs, void* workspace,
^~~~~~~
In file included from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/trt_utils.h:47:0,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/ds_image.h:28,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/calibrator.h:29,
from /home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/calibrator.cpp:26:
/home/aaeon/Desktop/yolov5-tensorrt/yolo-tensorrt/modules/plugin_factory.h:139:7: error: ‘int nvinfer1::Yolo Layer::enqueue(int, const void* const*, void* const*, void*, cudaStream_t)’ marked ‘override’, but does not override
int enqueue(int batchSize, const void* const* inputs, void* const* outputs, void* workspace,
^~~~~~~
CMakeFiles/detector.dir/build.make:62: recipe for target 'CMakeFiles/detector.dir/modules/calibrator.cpp.o' failed
make[2]: *** [CMakeFiles/detector.dir/modules/calibrator.cpp.o] Error 1
CMakeFiles/Makefile2:77: recipe for target 'CMakeFiles/detector.dir/all' failed
make[1]: *** [CMakeFiles/detector.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
根据报错信息,是tensorrt的插件出现问题。
2. 原因
具体来说,就是git clone
得到的yolo-tensorrt版本为最新的,目前最新版yolo-tensorrt项目是基于tensorrt 8做的,tensorrt8 和 tensorrt7的部分插件不一致。
考虑我们的tensorrt版本是7。机器上tensorrt版本查询命令为
dpkg -l | grep TensorRT
我的查询结果如图
可以看到,安装的tensorrt版本为7.1.3。
3. 解决办法
或者安装tensorrt 8,或者使用tensorrt 7的yolo-tensortt,我选择后者。
tensorrt8和tensorrt7版本的yolo-tensorrt都在下述链接中,自取 。
链接:https://pan.baidu.com/s/1gF7AqCMkIxSrOfDFj0CLRQ
提取码:kdr7