显卡 Nvidia RTX 3060 运行YOLOv5 训练自己的数据集,一直报下面两个错误,网上都是写CUDA版本和torch版本不一致,我的搭建的环境是 CUDA 10.2 + cuDNN 7.6.5 + pytorch 1.7.0 + torchvision 0.8.0
错误一:
RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
错误二:
RuntimeError: CUDA error: no kernel image is available for execution on the device
问题的根本确实是CUDA 和 torch 版本不统一,解决方法:
- 3000系列显卡支持CUDA 11以上,所以CUDA 10.2安装多少遍都是会报错的,强烈推荐3000系列直接安装CUDA 11.1,后面用pip安装torch也很快(我一直以为CUDA 10.2安装步骤有问题,前前后后安装了四五六七遍)
- 使用YOLOv5 自带的requirements.txt安装 torch 和 torchvision,也许会安装的是和CUDA别的版本匹配的 torch 和 torchvision,所以可以选择自己去官网安装(举例:本来环境是CUDA 11.1,使用pip install -r requirements.txt 命令安装的torch是对应CUDA 10.2的)
torch官网地址:https://pytorch.org/get-started/previous-versions/
安装之后可以查看CUDA torch 和torchvision的版本
//查看CUDA 的版本
echo $CUDA_HOME
//查看torch的版本
python
import torch
torch.__version__ //注意是两个下划线
torch.version.cuda //查看对应的CUDA版本
//查看torchvision的版本
python
import torchvision
torchvision.__version__
都匹配的话就可以直接训练数据了
撒花~~