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


Posted in Python onFebruary 06, 2021

一直用的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版本改掉。也可以科学上网,直接从官网安装。

Python 相关文章推荐
python如何通过protobuf实现rpc
Mar 06 Python
Python爬取网页中的图片(搜狗图片)详解
Mar 23 Python
Python自动发邮件脚本
Mar 31 Python
基于ID3决策树算法的实现(Python版)
May 31 Python
django文档学习之applications使用详解
Jan 29 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
python实现按行分割文件
Jul 22 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
Django之form组件自动校验数据实现
Jan 14 Python
python-xpath获取html文档的部分内容
Mar 06 Python
python 实现IP子网计算
Feb 18 Python
opencv实现图像平移效果
Mar 24 Python
python反扒机制的5种解决方法
Feb 06 #Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 #Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 #Python
pytorch下的unsqueeze和squeeze的用法说明
Feb 06 #Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 #Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 #Python
Python第三方库安装缓慢的解决方法
Feb 06 #Python
You might like
PHP递归遍历指定目录的文件并统计文件数量的方法
2015/03/24 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
$.ajax json数据传递方法
2008/11/19 Javascript
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
python多任务及返回值的处理方法
2019/01/22 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
有机童装:Toby Tiger
2018/05/23 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
Linux文件系统类型
2012/09/16 面试题
面向对象设计的原则是什么
2013/02/13 面试题
自我鉴定的范文
2013/10/03 职场文书
区三好学生主要事迹
2014/01/30 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
导游词之千岛湖
2019/09/23 职场文书
Python中request的基本使用解决乱码问题
2022/04/12 Python
Python PIL按比例裁剪图片
2022/05/11 Python