Pytorch的gpu配置

写在前面:

从0基础开始断断续续装了快4天,到处找解决方法,中间经历10多次的remake,最后应该算是装好了,特此记录一下,顺便防止我以后再配环境的时候忘了操作。。

1、安装cuda和cudnn

首先查看cuda driver version

命令行(win+R并输入cmd)输入nvidia-smi

右边可以看硬件上的cuda driver版本

右边可以看硬件上的cuda driver版本

其中cuda driver版本≥cuda runtime版本(即Pytorch 可以选择的cuda版本),我最开始的版本是10.2,发现Pytorch中现在没有10.2的cuda了(主要是以前的没看到),然后选择升级cuda driver version到11.6,想想还是升最新的,然后升到了11.8,准备配11.6的Pytorch cuda版本。

安装cuda和cudnn可以参考:(42条消息) 【CUDA】cuda安装 (windows版)_何为xl的博客-CSDN博客_cuda windows

我最后安装的是11.8的cuda和8.6.0的cudnn,重要信息,好好记住,后面会在提到。

2、安装anaconda

我的感觉是随便选个最近版本的安装就行了,安装还是挺简单的,我这几天的前段时间光出bug还以为是anaconda安装出问题了,把anaconda remake了3次了,后来无事发生,发现问题不在这儿,我太愚蠢了。

附上我认为b站上讲cuda,gpu是啥(说真的我当时也是真不清楚),anaconda的安装与使用与指令,pycharm的gpu配置讲的比较清楚的一个合集,给0基础的我讲得很透彻:21. GPU版本-安装Anaconda_哔哩哔哩_bilibili,五星好评。

3、安装Pytorch

重点来了,我觉得最烦人的阶段

前段时间耽搁在anaconda上,后段时间耽搁在这上面

通过pytorch官网上的conda指令能安装,用pip指令也能安装,甚至下载whl文件,然后再用pip直接安装也行(附链接),作为cuda11.8的我,11.6,10.3,10.2都能安装,但我秉持着安装最新的原则安装了11.6的,输入指令后,最好用镜像网站,那样更快,但我因为第一次用的镜像安装失败了,所以就用的官网提供的,我这儿好像速度也不慢,所以后面就没用镜像了。

在经过几次install和uninstall的操作之后,我才发现了下面这个现象,我真的太蠢了。

以10.2的安装为例,输入指令后,在确定是否安装(y/n)之前有这些信息

Pytorch的gpu配置

​在红框处写着cpu,那不用想了肯定是安装成cpu版本了,不过我就开始纳闷,我是按照官网给的指令安装的,为啥也能装成cpu,后来发现pytorch版本是1.12.0,和其他几个包版本对不上,所以安装不上,不过既然装不上为啥还要写出来,可能也是我在第一层没领会到操作。而我直接用官方提供的cuda=11.6的conda命令安装,各个版本都对应上了也是cpu。纳闷。

继续以10.2的安装为例,输入指令后,在确定是否安装(y/n)之前有这些信息

Pytorch的gpu配置

​在红框处是这样的,那么就可以开始下一步输入y安装了。

可以在装了pytorch环境中输入python进入python环境,然后

import torch
torch.cuda.is_available()

判断是否能使用gpu

若输出True则成功了

Pytorch的gpu配置

​这些例子是我最后安装10.2时候的,但我最开始是从11.6开始装的。再经过了几次remake后,当

第一次输出为True时,我开始安装yolov5的依赖文件,后来安装出了bug,import torch都报错:未找到这个包了,然后我又remake了anaconda了。

再经过了几次remake后,发现始终输出都是False,后来采用了直接下载11.6版本的whl文件,第二次输出为True,开始训练yolov5(yolov5的链接,顺便提一句tensorboard需要自己pip,我当时不知道),训练了几次,输出可视化没变化以及测试发现没结果,才发现结果成nan了,又在网上查原因,有

1、数据集大小的问题

2、学习率的问题

3、cuda和cudnn的版本不一致的问题

最开始在找前两点原因,后来发现用

torch.backends.cudnn.version()

可以看cudnn版本

Pytorch的gpu配置

​我用这个代码测试我自己下载的cuda11.8版本输出是8303(大概是,忘了保存了),也就是8.3.3(应该是),但我的cudnn是8.6.0,我开始意识到不对劲了,然后用另一种直接去cudnn_version头文件看版本的方法发现还是8.6.0,开始纳闷了,一直到现在都没弄清楚,此时此刻,我已经有点想把我的11.8降到10.2了,然后刚好配上8.3.3的cudnn,但是我突然意识到一个问题,是不是造成这个的原因是我没有按官方的命令下载pytorch,因为我是安装的whl文件,所以我决定将官方的conda和pip命令依次进行试验,看看输入上方的代码后是否会出现不同的cudnn版本,然后经过了连续几次的install和uninstall后,发现了上面提到的那个现象,真的蠢,浪费了好多时间。最后直接安装了10.2cuda版本的pytorch,经过训练测试发现没有nan了,开始出现具体数字了,后面测试了一下能正常使用了,但是这个cudnn版本号是7.6.5,而我还是8.6.0。

Pytorch的gpu配置

​但是我又能用了,疑惑且不解,开始怀疑这个

torch.backends.cudnn.version()

代码是否代表cudnn的版本了(我现在觉得不一定是了,还是说现阶段的pytorch自动把cudnn集成了,不用我单独安装了),但我确实能用了,而我的cuda和cudnn从我第一次安装好后就没动过了,单独用11.6的whl就会造成他们版本不一致,conda指令安装10.2的就好了,疑惑且不解,所以最后的结果兜兜转转还是回到了10.2版的,而我最开始的cuda driver version也是10.2,属于是白忙活了。

但我没找到10.2是否比11.6更慢的信息,就我个人体验而言,用10.2版本比11.6版慢了一倍,不知道是不是确实慢了一倍还是因为我用11.6版的时候结果都是nan导致的程序内部有些代码没运行,所以时间更短,我用自己的能力现在也验证不了,求有知道的佬可以解答一下

第二天

好像又出bug了

Pytorch的gpu配置

看网上的意思是pytorch版本和torchvision没对上,但我pytorch版本和torchvision分别是1.10.1和0.11.2啊,版本对上了啊,不懂,继续remake吧

遍历官网给的命令,发现这个能将loss显示出来,

conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch

但就是又会出现这个警告(之前loss是nan时也是这个提示,但现在loss好了,还有这个提示,终归还是变好了一点)

Pytorch的gpu配置

但我想先记录下来,再试试其他的,于是运行了这一条

conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge

然后出了个bug,通过这个解决了,开始训练,又出现上面这个顺序问题的警告,也能显示loss,而且我发现比昨天10.2的cuda好像更快了,然后训练200轮,一直到30多轮的时候发现loss好像空有示数但是没啥变化,好像又成之前情况了,所以还是看不出来到底谁快了属于是,我又开始remake了。

我现在有点感觉可能是我最开始把cuda driver version升级到11.8造成的这个原因,但我cudnn的对应版本也没错啊,我也不想把cuda降回去了,我头铁,我主观上觉得它没问题,但我客观上感觉有问题。不能因为我11.8的版本太高了吧。。

接着又用了下面这个指令

conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=10.2 -c pytorch

这个pytorch和torchvision版本没对上(不然会出现今天(28号)上午的bug),官方的版本对应,pytorch=1.10.0的时候,torchvision应该是0.11.1,但我还是相信了官方,有点头铁,我准备试试,大不了再remake然后安torchvision==0.11.1的版本,照样出现该bug,解决后,然后奇迹出现了,好起来了,顺序bug和未找到文件的bug都没有了,当然速度也降下来了,不过训练5轮,肉眼可见地loss越来越小了。可能也许正常速度应该就是这个样子。

最后的最后,我还是不了解装gpu的原理是什么,只是粗略了解了,以及我没有按照pytorch和torchvision版本对应关系却也阴差阳错成功了,我也不知道为啥能成功,我就是碰个运气,然后碰到了运气。

总体来说,应该是安装成功了,希望能一直好下去,不要明天又出现bug了

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年3月11日
下一篇 2023年3月11日

相关推荐