错误关键词:Version tag does not match. Note: Current Version: 213, Serialized Engine Version: 205
1.前提:
使用的版本为:tensorrt_yolov5 6.0版本
tensorrt :git clone -b yolov5-v6.0 https://github.com/wang-xinyu/tensorrtx.git
yolov5:git clone -b v6.0 https://github.com/ultralytics/yolov5.git
编译生成engine 引擎后,使用yolov5_trt.py 调用动态库和engine 推理图片。
2.错误信息:
[TensorRT] ERROR: 1: [stdArchiveReader.cpp::StdArchiveReader::40] Error Code 1: Serialization (Serialization assertion stdVersionRead == serializationVersion failed.Version tag does not match. Note: Current Version: 213, Serialized Engine Version: 205)
3.分析:
Version tag does not match. Note: Current Version: 213, Serialized Engine Version: 205
很明显 版本version 不同,编译生成的engine 文件所用的tensorrt 版本与当前conda 运行环境中的tensorrt版本不一致,所以,需要我们将编译engine时链接的tensorrt版本要与运行的conda环境中一致。
4.解决:
编译engine时,需要修改CMakeLists.txt,如下
但是,还有一个坑,你的conda 环境中的tensorrt与编译engine一致时,仍然报 版本不一致的错误,那么你需要查看你的conda list 中的nvidia-tensorrt 版本,如果环境中没有nvidia-tensorrt,那就需要去安装一个nvidia-tensorrt包,记住,这个nvidia-tensorrt包版本号需要与你编译engine时的tensorrt版本号一致。