完美解决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装饰器实例大详解
Oct 25 Python
Python列表生成式与生成器操作示例
Aug 01 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
Dec 15 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
python matplotlib中的subplot函数使用详解
Jan 19 Python
python os模块常用的29种方法使用详解
Jun 02 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
Python嵌入C/C++进行开发详解
Jun 09 Python
python怎么删除缓存文件
Jul 19 Python
python利用后缀表达式实现计算器功能
Feb 22 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下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
使用js画图之画切线
2015/01/12 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
JavaScript类的写法
2016/09/17 Javascript
Move.js入门
2017/02/08 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
详解JS预解析原理
2020/06/16 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
Python递归遍历列表及输出的实现方法
2015/05/19 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
python如何查看系统网络流量的信息
2016/09/12 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
Python里面search()和match()的区别
2016/09/21 面试题
2014升学宴答谢词
2014/01/26 职场文书
医院工作检讨书范文
2014/02/10 职场文书
学校师德承诺书
2014/05/23 职场文书
开工典礼策划方案
2014/05/23 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
责任书格式
2019/04/18 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python