完美解决torch.cuda.is_available()一直返回False的玄学方法

作者:凛雨时冽 时间:2023-04-05 18:17:34 

一直用的TensorFlow(keras)来完成一些工作,因许多论文中的模型用pytorch来实现,代码看不懂实在是不太应该。正好趁此假期,疫情原因无法出去浪,在家学一下pytorch。

游戏用笔记本自带GeForce 1050显卡,可用GPU,想着不用白不用,先装一个GPU版本再说。但是我按照网上的所有方法,torch.cuda.is_available()总是返回False。有轻微强迫症的我,不解决掉是睡不好的。

首先说一下我所做的工作顺序。说不定能有参考。(系统:WIN10)

1.安装CUDA

此处有其他大量且优质的帖,故不在此详述。我自己的机器支持CUDA10.2,但是我安装的是CUDA10,按理说应该版本是向下支持的。安装正确在cmd中敲nvcc -V能显示即可。

完美解决torch.cuda.is_available()一直返回False的玄学方法

NVIDIA-smi命令截图如下。感觉是没什么问题的,驱动版本也挺高。

完美解决torch.cuda.is_available()一直返回False的玄学方法

2.安装对应版本的pytorch

首先想到的肯定是官网安装。conda+重新开放的清华源=神速。此处是我自己的一个大坑。

完美解决torch.cuda.is_available()一直返回False的玄学方法

3.安装cudnn等

同样,有大量帖子教学。我是在一直失败,走投无路,抱着安装一下试试的想法,结果并无卵用。

玄学解决

网上的攻略说产生此类问题的主要原因在于驱动安装的不正确。但我自己的情况并不符合。

在搜了大量的帖子无果后。偶然发现,使用官网conda命令下载的,居然全是CPU版本。

完美解决torch.cuda.is_available()一直返回False的玄学方法

无论我怎么尝试使用conda下载任何版本,都是cpu版本的。可能是清华源的问题??

既然conda无法用,那就用pip。官网的pip命令,不知道是不是我的问题,就算使用各种源,速度也超级慢,还会中断,700M+硬是下不下来。无奈使用本地下载方法。

在此处寻找符合自己版本的pytorch-cuda版本,torchvision版本下载。

https://download.pytorch.org/whl/torch_stable.html

(速度同样极慢!但是不会断了。。。。勉强能下)

下载后pip install xxx(下载下来的文件名) 安装即可。

完美解决torch.cuda.is_available()一直返回False的玄学方法

接下来就见证奇迹了。但是奇迹是怎么发生的,conda为什么只能下cpu版本,我一直没有搞明白。

补充:记录下pytorch安装中一个比较隐蔽的坑,torch.cuda.is_available()返回false的一个原因

如题,想要安装GPU版,一开始从网上找了教程,显卡驱动、CUDA、cuDNN挨个更新安装,都选择了10.1版本,安装完后在anaconda中按照官网提示输入下面的代码,可以看到cudatoolkit即GPU版


conda install pytorch torchvision cudatoolkit=10.1 -c pytorch

然后发现基本上大一点的包都下载不下来,包括pytorch、cudatoolkit等等,遂又从网上找教程,加清华源,加了几个之后下载很快,下载下来也可以用,以为已经成功了,但是torch.cuda.is_available()返回就是False。

最开始以为是开始安装的版本不匹配,然后又尝试了10.2版本的CUDA,结果还是一模一样,最后输入conda list后终于发现了问题所在:

完美解决torch.cuda.is_available()一直返回False的玄学方法

可以看到第三列版本号前面的cpu,后来上清华源的网站上看了下,可能是清华源没有对应cuda版本的pytorch,所以会装cpu版的。

目前的解决方法有两个,可以去清华源网站上找对应的版本,https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/,安装输入命令行时将cuda版本改掉。也可以科学上网,直接从官网安装。

来源:https://blog.csdn.net/dysljxjsq/article/details/104159802

标签:torch,cuda,is,available,False
0
投稿

猜你喜欢

  • python实现简单飞机大战小游戏

    2023-12-19 06:55:37
  • 在golang中操作mysql数据库的实现代码

    2024-01-15 14:41:51
  • ASP中不用模板生成HTML静态页面的方法

    2011-03-06 10:49:00
  • Python中字符串的基本使用详解

    2022-08-13 07:05:42
  • SQL Server中的执行引擎入门 图解

    2012-06-06 20:08:26
  • 浅谈web分析

    2008-12-02 15:52:00
  • jquery及原生js获取select下拉框选中的值示例

    2024-04-19 09:58:56
  • PHP判断是否微信访问的方法示例

    2023-07-05 03:21:36
  • 浅谈ACCESS数据库升迁SQLSERVER注意事项

    2007-08-11 13:44:00
  • SQL中创建存储过程

    2024-01-23 17:42:58
  • Python asyncore socket客户端实现方法详解

    2022-06-18 14:17:42
  • JS异步宏队列与微队列原理区别详解

    2024-04-22 13:26:36
  • 通用的二级菜单代码(css+javascript)

    2024-06-09 18:35:28
  • PyQt5 designer 页面点击按钮跳转页面实现

    2023-02-24 14:12:48
  • PHP注释语法规范与命名规范详解篇

    2023-06-09 15:44:16
  • anaconda创建、查看、激活与删除虚拟环境指令总结

    2023-04-09 13:01:23
  • Python切片操作深入详解

    2021-07-06 08:39:26
  • 纯CSS圆角框

    2009-12-11 18:57:00
  • Python 函数编编程的三大法宝map+filter+reduce分享

    2022-10-17 23:37:22
  • linux下安装python3和对应的pip环境教程详解

    2023-03-17 09:48:15
  • asp之家 网络编程 m.aspxhome.com