YOLOv5 pt转engine

本文详细描述了作者在安装YOLOv5pt时遇到的错误,如CUDA初始化失败,以及如何通过排除法找到问题根源(如TensorRT版本不匹配),并提供了从新版本降级到老版本的安装建议。文章强调了检查环境设置(如cudnn状态)的重要性。
摘要由CSDN通过智能技术生成

常规安装

这是两个参考资料:
tensorrt下载链接
tensorrt release
cuda安装tensorrt可能会出现的问题合集

修改你YOLOv5下的requirements.txt。把下面两行取消注释

onnx>=1.10.0  # ONNX export
onnx-simplifier>=0.4.1  # ONNX simplifier
nvidia-pyindex  # TensorRT export
nvidia-tensorrt  # TensorRT export

安装requirements.txt
pip install -r requirements.txt

还有运行下面那个指令安装tensorflow,顺便确认了你安装了onnx:
pip install -r requirements.txt coremltools onnx onnx-simplifier onnxruntime-gpu openvino-dev tensorflow

最后使用官方的安装命令将tensorrt升级到最新版本。
python3 -m pip install --upgrade tensorrt
参考一下下面的图,这里举的例子是8.5.3的。如果你要安装8.5.3的tensorrt,在安装之前,至少请保证你现有的环境中的cuda、cudnn、tensorflow、onnx、pytorch均大于8.5.3的tensorrt的版本要求。
tensor某版本的环境要求
如果你此时可以使用tensorrt了,那么恭喜你可以结束了。

出现错误和解决错误

大地雷来了。

我此时报了一个错误:

[E] [TRT] CUDA initialization failure with error

一开始我觉得是cuda出问题了,运行了下面的代码测试一下,发现也都是True。

import torch
print(torch.cuda.is_available())
print(torch.backends.cudnn.enabled)

得出结论这是tensorrt版本问题(参考文章顶部的cuda安装tensorrt可能会出现的问题合集)
然后我将我下好的tensorrt卸载掉,使用官方的pip下载命令安装
python3 -m pip install --upgrade tensorrt
还是报了一样的错误。

那么就通过文章顶部的tensorrt下载链接和tensorrt release,舍弃新版本寻找合适的老版本。我这里选择的是tensorrt==8.5.3.1的版本。使用pip或者conda进行安装,两个有一个可以用就行,自行尝试:
conda install tensorrt==8.5.3.1

pip install tensorrt==8.5.3.1

我的tensorrt安装之旅结束了。

经验

上面讲的是我最后一次安装成功的过程。在这之前我碰到了很多问题:比如cudnn无法使用、cuda无法使用、cuda初始化失败等等问题。

如果你十分确定你的cuda版本和cudnn版本之间是绝对兼容没问题的,即之前的跑实验都能用。先重装你的pytorch试试看,如果也没有问题,那么问题应该就是在tensorrt的版本上了。千万不要轻易更换cudnn或者cuda。

很多教程都推荐使用tar的方式安装tensorrt,我主要是嫌弃麻烦,而且同样没办法避免版本问题。我感觉如果你使用的是conda虚拟环境的话,命令下载会是最优选择。

比如出现了下面的这种提示,我额外使用下面的代码检测也都没问题,返回都是True。

import torch
print(torch.cuda.is_available())
print(torch.backends.cudnn.enabled)

后来发现是我的代码开头里就加入了torch.backends.cudnn.enabled = False导致cudnn无法使用。

Error Code 1: Cudnn (Could not initialize cudnn, please check cudnn installation.)

所以除了环境外,也要看一下是否是自己的代码出现了这种问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值