完美解决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迭代器的使用方法实例
Nov 21 Python
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
分享8个非常流行的 Python 可视化工具包
Jun 05 Python
python如何给字典的键对应的值为字典项的字典赋值
Jul 05 Python
Python+Pyqt实现简单GUI电子时钟
Feb 22 Python
python模拟实现斗地主发牌
Jan 07 Python
改变 Python 中线程执行顺序的方法
Sep 24 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
Python实战之实现简易的学生选课系统
May 25 Python
用Python编写简单的gRPC服务的详细过程
Jul 04 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
Apr 21 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数字格式化
2006/12/06 PHP
php5.2时间相差8小时
2007/01/15 PHP
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
php显示时间常用方法小结
2015/06/05 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
javascript实用方法总结
2015/02/06 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
jQuery文字横向滚动效果的实现代码
2016/05/31 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
Python中的下划线详解
2015/06/24 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
Python中的单行、多行、中文注释方法
2018/07/19 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
Python常用的json标准库
2019/02/19 Python
python中open函数的基本用法示例
2019/09/07 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
电子商务专业推荐信范文
2013/12/02 职场文书
升学宴主持词
2014/04/02 职场文书
倡议书格式范文
2014/04/14 职场文书
五四青年节演讲稿
2014/05/26 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python