安装过程比较曲折,阅读了很多dl的博客,并不是每一种都能顺利解决我自己的问题,但好在费尽周折之后安装成功了,于是将遇到的一些问题记录在这里,表述有问题的地方还请各位指出。

零、几点说明

1,本文默认已安装Anaconda,Win10系统
2,本人安装主要遇到的问题是:

  • conda list有pytorch但是import torch失败
  • import torch成功但是torch.cuda.is_available()返回false


一、Cuda和Cudnn未安装,安装后import torch成功

很多博客一般一开始都会让大家去查找Cuda的版本号,接着便放上官网的下载界面。但这样会让人以为,只要看到了版本号,就可以去下载pytorch了,但实际上不是这样,对于初次安装的人来说,可能他们连Cuda和Cudnn都还没有安装好,那么后面可能会出现import失败等问题。
以这篇比较火的博客为例,如何查看windows的CUDA版本,作者介绍了两种方法:

  • 去英伟达的控制面板里查找(这种方法简单直观,应该是大多数人的首选,==但是有问题!==详见下文)
  • 在命令行查询

第二种方法是作者在其他博客中经常看见的方法,于是记录了下来,但是他也坦陈,这种方法在他那里行不通。

事实上,第二种方法对我来说也行不通,遇到了一样的错误。

pytorch训练怎么设定cuda是0或1 pytorch cuda false_python

还是该博客,评论区里有位朋友很诚恳地指出了第一种方法的问题所在——“CUDA没有安装成功!!!

pytorch训练怎么设定cuda是0或1 pytorch cuda false_官网_02


如果是这种情况,那么把相应的Cuda和Cudnn进行安装即可,这方面的博客有很多。

Cuda和cuDNN安装教程

二、用conda 还是用 pip?个人用conda安装成功

在解决了Cuda和Cudnn的安装问题后,发现,import torch成功但是torch.cuda.is_available()返回false

而根据这个主要参考的A博客:两步搞定pytorch安装 检查了一遍conda list,不幸被其言中,确实是下载的CPU版本,因为pytorch相关的行上有明显的cpu字样。

pytorch训练怎么设定cuda是0或1 pytorch cuda false_pytorch_03

该博主信誓旦旦地说用** “必须手动去官网用pip下载安装” **,于是我信了,然后卸载conda uninstall pytorch,尝试用pip,但是不是速度慢就是找不到资源,于是又在网上疯狂找博客。
直到遇到B博客:Python安装Pytorch教程(图文详解)

高亮的部分,让我再次不幸被言中!

pytorch训练怎么设定cuda是0或1 pytorch cuda false_Cuda_04


可能pip不适合我,于是还是回归了用conda安装。

同时这里的红字也给了我一个提醒,在官网选择pytorch对应的cuda版本时,可以选择比电脑上安装的cuda版本低一些!

于是我安装了11.3版本(之前11.6版本安装失败)

pytorch训练怎么设定cuda是0或1 pytorch cuda false_深度学习_05

三、python版本合适否?

在看到这篇博客后,我在想我的python版本是不是也出了问题
Anaconda中安装pytorch后,验证import torch失败

此外,在解决第二个问题时,从博客上阅读得知,pip install是要安装特定版本的whl文件的

注意!stable版本是1.12.0,cuda版本暂时选择11.3

pytorch训练怎么设定cuda是0或1 pytorch cuda false_pytorch_06


打开Run this Command后半部分的链接

pytorch训练怎么设定cuda是0或1 pytorch cuda false_pytorch_07

点击torch,会看到有很多whl文件供选择。

因为stable版本是1.12.0,所以我只截取了1.12.0的部分

带有cpu字样的表明计算平台是cpu,显然不在选择范围内,操作系统字样是win的少之又少,而cp后面跟的数字是python的版本,36表示3.6, 37表示3.7.

此外,直观能看出,大部分都是python3.7版本往上了。

pytorch训练怎么设定cuda是0或1 pytorch cuda false_python_08

在查看conda list的时候,我发现pytorch这一行对应的字样是py3.7

而我的pytorch环境的python版本是3.6,为了保险起见我把该环境的python升级到了3.7。

然后重启了anaconda prompt

pytorch训练怎么设定cuda是0或1 pytorch cuda false_Cuda_09

最后的界面如下,误打误撞也算是解决了!

pytorch训练怎么设定cuda是0或1 pytorch cuda false_Cuda_10