完美解决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小技巧之批量抓取美女图片
Jun 06 Python
Python内建数据结构详解
Feb 03 Python
windows下ipython的安装与使用详解
Oct 20 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
python通过tcp发送xml报文的方法
Dec 28 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
python word转pdf代码实例
Aug 16 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
Django项目创建及管理实现流程详解
Oct 13 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
PHP 多进程 解决难题
2009/06/22 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
php图片添加水印例子
2016/07/20 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
javascript中对对层的控制
2006/12/29 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
DOM 事件流详解
2015/01/20 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
python控制台中实现进度条功能
2015/11/10 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
python mock测试的示例
2020/10/19 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
俄罗斯商务邀请函
2014/01/26 职场文书
课外科技活动总结
2014/08/27 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
社会实践活动报告
2015/02/05 职场文书
郭明义电影观后感
2015/06/08 职场文书
python字典进行运算原理及实例分享
2021/08/02 Python
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android