Torch与CUDA不兼容问题解决方案
近期需要训练一个Yolo模型,在本地配置Yolo环境遇到CUDA一直报错问题,记录解决方案。
问题原因
因为电脑的配置较差,安装的NVIDIA 驱动程序版本过旧,不管怎么更换pytorch版本与CUDA版本都带不起来,网上给的解决方案大多是要对其torch与CUDA版本,忽略了本身驱动的版本也要匹配,重新配置三四遍仍然是False,下面记录驱动、torch、CUDA三者对应的安装方案。
确定显卡并更新驱动
我的电脑显卡是NVIDIA Quadro K6000,不知道显卡型号的可以在电脑下方任务栏处右键,找到任务管理器——性能,可以看到GPU参数。
更新NVIDIA驱动程序
- 访问 NVIDIA 驱动程序下载页面:可以通过 NVIDIA 驱动程序下载页面找到适合 GPU 的最新驱动程序。
- 选择 GPU 型号:根据显卡型号选择合适的驱动程序,下载并安装。
- 从搜索结果中选择适合的最新驱动程序,通常推荐下载“Game Ready Driver”或“Studio Driver”,具体取决于你的用途。
参考网址:http://nvidia.cn/
通过手动搜索输入GPU型号,选择合适的驱动程序下载
安装驱动程序
注意,在整个驱动及CUDA安装过程中做好数据备份,准备重启电脑
下载完成后,安装下载的驱动程序,安装完成后,可以打开cmd使用nvidia-smi
来查看驱动是否安装成功
我已经成功安装了475.14版本的驱动程序
查看显卡驱动对应的CUDA版本
更新驱动之后,可以继续下一步CUDA的安装,查看驱动与CUDA的对应情况,下载相应的CUDA版本
不同的显卡驱动版本支持不同的CUDA版本,可以通过访问NVIDIA官方文档来查看显卡驱动与CUDA版本的对应关系:
参考网站:https://docs.nvidia.com/deploy/cuda-compatibility/index.html
感兴趣的可以去详细看看,通过我的驱动为R470,所以我选择下载CUDA11.4,也列出了不同CUDA版本所需要的最低驱动版本
参考网址:https://developer.nvidia.com/cuda-toolkit-archive
下载相应的CUDA版本,准备安装
我选择的是CUDA11.4
安装之前可以先将之前的CUDA卸载,避免冲突,卸载 CUDA 的步骤:
打开控制面板:在 Windows 中,打开“控制面板”
选择“程序和功能”:找到并选择“卸载程序”或“程序和功能”
找到 CUDA:在程序列表中,找到已安装的 CUDA 版本(例如,CUDA 11.2 或 CUDA 12.6
卸载:右键点击 CUDA,然后选择“卸载”
按提示完成卸载:根据提示完成卸载过程
卸载完成后使用新的CUDA安装包进行安装,有的人需要重启电脑才可以完成,我没有重启,最后也安装成功了,参考个人情况
查看对应Pytorch版本
驱动程序与CUDA对应之后,查找与之对应的pytorch版本,别忘了同时关注所需python版本。这里我采用的是离线安装的方式,清华源安装可能会出现安装CPU版本的问题,可以选择先下载安装包再安装
首先创建一个环境安装pytorch
我为了训练yolo,所以起名为yolo_env
在搜索栏找到cmd打开,输入命令创建并激活环境,这里我选择了python=3.9,大家安装时可以根据需要调整,遇到提示框输入y进行安装。
conda create -n yolo_env python=3.9
conda activate yolo_env
(Python版本:一般来说,较新的PyTorch版本支持较新的Python版本。以下是一些常见的对应关系:
PyTorch 1.13.1支持Python 3.8、3.9、3.10
PyTorch 1.12.0支持Python 3.7、3.8、3.9
PyTorch 1.10.0支持Python 3.6、3.7、3.8、3.9
也可以查看对应关系,参考网址如下:
PyTorch官方安装页面: https://pytorch.org/get-started/locally/
PyTorch文档: https://pytorch.org/docs/stable/index.html)
我选择的python为python3.9
pytorch下载参考网址:https://download.pytorch.org/whl/torch_stable.html
其中cu开头的表示CUDA版本,cp后面的数字表示Python的版本,python3.9即为cp39,参考CUDA11.4,考虑到没有对应的cu114,选择了向下兼容,cu113/torch-1.12.1%2Bcu113-cp39-cp39-win_amd64.whl,下载得到如下:torch-1.12.1+cu113-cp39-cp39-win_amd64.whl
将下载得到的安装包放在我们的环境目录下,参考我的目录如下:D:\Anaconda3\envs\yolo_env
在cmd中打开上述目录,使用pip进行安装
pip install torch-1.12.1+cu113-cp39-cp39-win_amd64.whl
将后面的版本改成自己的版本
显示安装成功,至此驱动程序、CUDA、pytorch版本都已经对应,可以进行下一步验证了
安装成功验证
进入python环境进行验证:
python
import torch
print(torch.__version__)
print(torch.cuda.is_available())
分别输出版本号与True,即为安装成功