关于PyTorch找不到CUDA / PyTorch突然用不了GPU / pytorch的版本匹配相关问题

#经验帖#

之前安装了GPU版本的pytorch,一切正常,前几天忽然就报错了,输入

import torch
print(torch.cuda.is_available())

返回false,也就是无法使用gpu。

自此开始漫长的自查过程,在网上各路大神的帖子里寻找解决办法,以下是博主的尝试:

1. 一般问题基本上出在下载的pytorch版本问题,在终端用命令:

conda list

查看pytorch版本,发现带有“cpu”,果然是因为是cpu版本的pytorch吗,但是博主记得之前下载的明明是gpu版本来着?不管了,一顿卸载重装操作之后,发现还是返回false。再用conda list命令发现此时pytorch版本已经是gpu版本了(带有cuda的即为gpu版本),匹配python3.10,cuda版本11.8,cudnn版本8_0。从这里来看是没有问题的

用命令:

print(torch.__version__)

输出发现当前使用的pytorch版本为2.2.2++cpu,这是怎么回事!?一般来说,在安装的pytorch版本为cpu版本时才会出现这个问题,但是通过conda list显示确实是gpu版本的pytorch

据说在找不到要下载的匹配版本时,conda会默认下载cpu版本的pytorch,关于这点请移步这个帖子,博主写得很全:conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]_为什么conda安装pytorch版本不对-CSDN博客

一般来说pytorch官网给的下载都是匹配的版本,如果要下载更低版本的pytorch,在以往的版本里面寻找即可:

2. 既然安装了gpu版本的pytorch,那就要检查版本和显卡的问题,查看显卡是否支持cuda11.8,进入环境在终端输入命令:

nvidia-smi

我的显卡支持cuda12.4,更低一点的版本也支持,cuda11.8支持版本≥520,因此下载官网的cuda11.8没有问题,如果想要用版本更高的pytorch,可以试着更新显卡驱动

至于torch和cuda版本匹不匹配,在经过很多次检查,看网上的帖子,最终还是确定是匹配的,并且就如我在上面写的,用官网的下载命令一般都是匹配的。清华源据说下载的是cpu版本,且会存在torch和cuda版本不匹配的问题,下载时要注意

3. 问题来了,安装了正确版本的pytorch,显卡也支持,实在想不出还是因为什么。于是乎我开始骚扰gpt,此时它的一句话提醒了我,“检查一下环境中是否存在多个pytorch版本”,但是从conda list的结果来看只有gpu版本的pytorch,于是乎我决定卸载再重新安装pytorch,用的是以下命令(感觉有点坑):

conda uninstall pytorch

并且我还特意在base环境和pytorch环境中都运行了此命令,然后再重新安装了pytorch,结果居然还是一样的!太绝望了!

4.  最终峰回路转是因为我看到某一个帖子,答主的解决办法也是卸载重装,但是卸载方式不太一样,需要把torch和torchvision都卸载,且使用的是pip命令。看到torchvision时答主猛然想起前几天不知为何提示没有torchvision的库,于是乎便直接在base环境中conda install torchvision,记忆中似乎瞥见一眼它说正在安装torch,好,破案了!base环境中没有pytorch,在安装torchvision时自动安装了cpu版本的torch,并且不知为何隐藏了起来,用conda list找不到,但每次使用python时都默认使用的是该版本的torch,无论我怎么折腾gpu版本的pytorch也无济于事啊!

分析一通之后,我在base环境中,输入“python”进入python环境,然后输入:

pip uninstall torch #注意这里的是torch,conda命令是pytorch
pip uninstall torchvision

卸载非常迅速,这个时候再进入我的pytorch环境,使用命令:

import torch
torch.cuda.is_available()

看到这个True,博主简直要高呼流泪了!

划重点!!!最好还是用pip命令,速度快,也不会抽风,其次,卸载记得将torch和torchvision一同卸载

至于为什么会调用base环境中的torch,可能的原因参考此位博主的帖子:pycharm创建的虚拟环境总是关联外部其他环境的包,导致进入虚拟环境后pip install的包识别到其他环境中_使用pycharm创建新项目,使用虚拟环境,但是进入其他环境里面了-CSDN博客

 不过我还是没有删除set_packages这个路径链接,担心删除之后有些包不能用,之后再看吧。

为了这个问题答主这几天食不下咽,夜不能寐,于是乎决心将自己的踩坑和排查经历记录于此,希望能提供微薄作用! 我有些地方写的还是不够详细,有什么疑问的欢迎交流讨论!

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值