Ubuntu深度学习的环境配置

前几天,我们导师派遣一位师兄躲在导师车里秘密潜入学校,目的是为了在学校实验室里几台机器上装配远程操控软件,方便我们在家里就可以实现对网络的训练。(没有云服务器的寒酸)
结果分给我了一台我从来没就没有用过的电脑,对上面的环境啥的都不清楚,就这样我就开始了长达一天多的Ubuntu深度学习环境的配置过程。其实我原先在Windows上配置过不止一次环境了,对于整个流程是驾轻就熟的,但是在Ubuntu上从来就没有试过,原先尝试用Ubuntu的电脑跑程序也几乎都没有成功过(毕竟是个菜鸟,Win傻瓜操作系统,什么都可视化操作)。下面啥也别说了,直接开始说明我的安装历程和中间遇到过的坑。

1.安装Anaconda

直接去清华镜像进行下载
下载完了之后,先进入这个安装包所在的路径,然后输入命令:

bash 下载好的文件名

随后就是一系列的enter和accept的选择,但是到最后一步,会提示是否把anaconda加入到系统环境变量中:
建议像我这样的菜鸟来说,就不要加了,直接回车,默认就是no。
你以为就这样安好了吗,当你在命令行输入conda的命令,你会发现command not found,这就是前面选择了no的原因,所以我们需要自己手动将anaconda的bin目录加入PATH。
在这里以Anaconda2为例
我们采用如下的命令来实现上述操作(下列两个命令均可):

echo export PATH="~/anaconda2/bin:$PATH" >> ~/.bashrc(去掉单引号)
echo 'export PATH=~/anaconda2/bin:$PATH' >> ~/.bashrc(去掉双引号)

还有最后一步比较重要,就是我们需要更新bashrc来使我们刚刚的修改立即生效,于是我们采用:

source ~/.bashrc

到此为止我们就安装成功了。

2.用Anaconda创建新的虚拟环境

既然Anaconda都装上了,我们就先用一用吧,先创建一个虚拟环境放在这里,这里就会碰到第一个坑。
创建虚拟环境我们采用语句:
我一般使用的python3.6版本的,而且使用的深度学习的框架是pytorch,所以名称叫做pytorch。

conda create -n pytorch python=3.6

这里说一下遇到的第一个坑以及解决办法。
这是和anaconda有关的,就是先开始你可能还能用,但是当网不好或者没有用清华源来下载安装东西的时候,下的东西会断开,当断了你重新输入相同的指令进行下载的时候就会报出:
段错误(核心已转储)
这个错误困扰了我大半天,是真的大半天。
首先我去直接去搜索这个错误的有关信息,结果收到的都是:
超过了栈的边界,然后把栈的大小设置大一点就可以了。对推荐使用如下语句来扩充栈的空间:

ulimit -s  102400
ulimit -c unlimited

但是这样的操作只能对当下命令行窗口执行的程序有用,对于其他的程序是没有作用的,于是网上还给出了一种一劳永逸的方案,那就是修改bashrc,这样就能对所有程序都管用了。修改的方案如下:
首先采用gedit ~/.bashrc来进到bashrc的编辑页面,然后在最后一行加上上面两行。
我想肯定的是这种方法在一开始确实有用,但是你在多装了一些东西之后就会一直报这个错误,就是只要你使用和conda有关的命令,这个错误就会一直困扰你,直到你崩溃。因为对于这种错误你真的很无奈,当你尝试了网上所说的任何方法之后问题还是得不到解决,一种对于未知的恐惧和无名火会突然涌上你的心头,会让你不自觉的举起拳头砸向面前的显示屏这种处境是很可怕的,尤其是在疫情期间,出去修个电脑都要冒着姓名危险,所以这个问题很严重。
最后我总结了一下,我觉得网上肯定会有人和我遇到同样的问题,可能只是我搜索的方法不正确罢了,于是我总结这种报错和你使用conda的命令有着很大的联系,于是我就将搜索栏前添加了一句Anaconda,这个时候我的世界被点亮了,一道红色的圣光照耀到了我的脸上,我的天,有人和我搜索的关键字是一模一样的。就是这位大神,在一周多之前他遇上了和我一样的问题,同时天涯沦落人,相逢何必曾相识,这位大哥可能也因为这个问题气急败坏,把拳头慢慢地伸向了电脑显示屏,然而他心中唯一残存的一点理智告诉他:电脑是自己的,要冷静冷静。于是他默默抽了一根烟,想到了去逛逛github,向国际共产主义寻求帮助,于是他找到了这个问题的解决的方法。于是,我就采用的这位大神的方法:

conda clean -a

我感谢这位大哥在我穷途末路的时候给我带来了柳暗花明。

3.安装cuda和cudnn

首先,我们需要查看自己的显卡驱动,在Ubuntu16.04下查看显卡驱动变得比较容易,系统设置->软件更新->附加驱动”切换到对应版本的NVIDIA驱动,点击“应用更改”,完成后进行电脑重启即可,这里本人所选的版本为384版本。(其实并不是我选的,是只能用这个)早些时候有个同学手比较快,先自己换了驱动,关了电脑,但是他没有注意到自己的远程连接也终止了,于是他就没有了电脑。
Ubuntu深度学习的环境配置_第1张图片
接着我们使用nvidia-smi来检查驱动是否安装成功
Ubuntu深度学习的环境配置_第2张图片
这里有个驱动与cuda的对照表,可以照着这个选择cuda的版本:
Ubuntu深度学习的环境配置_第3张图片
我选择的是cuda9.0,地址在这里:https://developer.nvidia.com/cuda-90-download-archive
如下选好自己要下载的版本,点击进行下载:
Ubuntu深度学习的环境配置_第4张图片
下载完成后,终端进入下载目录,执行命令:

sudo sh cuda_9.0.176_384.81_linux.ru --override

安装过程中会出现很多选项,按住‘S’滑到100%后,根据提示输入:

1 输入 accept 接受条款
2 输入n不安装nvidia图像驱动,之前已经安装过了 //此处一定要选择n!!!
3 输入y安装cuda 9.0工具
4 回车确认cuda默认安装路径:/usr/local/cuda-9.0
5 输入y用sudo权限运行安装,输入密码
6 输入y或者n安装或者不安装指向/usr/local/cuda的符号链接
7 输入y安装CUDA 9.0 Samples,以便后面测试
8 回车确认CUDA 9.0 Samples默认安装路径:

安装完成后,会提出不完整的安装,此处不用管,是因为上一步没有选择安装显卡驱动导致的。

下一步添加环境路径:
同样是采用sudo gedit ~/.bashrc来对bashrc来进行修改,在尾部添加:

export CUDA_HOME=/usr/local/cuda-9.0    
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH   
export PATH=/usr/local/cuda-9.0/bin:$PATH

在这里提示一下,前面的路径自己最好不要改哈,改了后面的这些bashrc中的路径要改,比较麻烦
到此已经完成安装,下面测试安装是否成功:
Ubuntu深度学习的环境配置_第5张图片
接着就是cudnn的安装了,cudnn和cuda并没有一一对应的关系,只是但一般有一个最新版本的cuDNN版本与CUDA对应更好,在这里我们安装Cudnn7.0.5
下载完,解压后把相应的文件拷贝到对应的Cuda目录下即可,在终端执行命令:

sudo cp cuda/include/cudnn.h  /usr/local/cuda/include 
sudo cp cuda/lib64/libcudnn*  /usr/local/cuda/lib64 
sudo chmod a+r /usr/local/cuda/include/cudnn.h  
sudo chmod a+r /usr/local/cuda/lib64/libcudnn* 

这就装完了。

4.安装pytorch

首先我们使用source activate pytorch来进入我们需要的环境,然后添加清华源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

根据Python和CUDA选择对应的版本,然后官方给出提示可通过运行:

conda install pytorch torchvision cudatoolkit=9.0 -c pytorch

然而我们在这里需要去掉-c pytorch来进行安装。

5.下载Pycharm并配置Interpreter

https://baijiahao.baidu.com/s?id=1622347860160507809&wfr=spider&for=pc
这里需要注意的是,一开始在linux上安装的pycharm是默认没有菜单栏的,所以需要我们把它调出来,方法如下:

1 按Ctrl + Shift + A打开“Find Action”对话框,键入“Experimental features”,然后按Enter键。
2 取消linux.native.menu选项旁边的复选框,应用更改并关闭对话框。
3 重启PyCharm

然后在环境里使用which python来看看我们python真正使用的是哪个路径下的,这个时候需要注意,他哪个有一个.conda,这个.conda就是一个文件夹,你就不要再像Windows里那样在anaconda下的env去找了,严格按照他这个路径来进行配置。
在这里讲一讲,走的冤枉路,一开始,我是按照这个链接来进行配置的:
https://www.cnblogs.com/dxscode/p/11633657.html
当时的cuda什么的都是安装好了的,但是就是像我上面说的那样,即使pytorch安上了,在命令行中import torch都成功了,但是没有严格按照which python下的路径来配置Pycharm,所以把envs里的pytorch路径下的python都试了一遍,没有用,所以不得不从头开始,卸载了安装好的cuda10.0,又重新装。如果当时仔细看路径的话,就不会浪费一天的时间了。
卸载的链接看这里:
https://blog.csdn.net/heiheiya/article/details/81454737
后面又因为执行conda命令的时候,它又疯狂报错:error An unexpected error occurred
我又不得不卸载了anaconda,又重新装,卸载的链接是:
https://blog.csdn.net/hang916/article/details/79530108

总结
严格按照每一步的要求做到位,不要漏掉任何一个操作步骤,否则你就会走冤枉路,浪费大量的时间。
参考:

https://www.cnblogs.com/mlgjb/p/10445201.html
https://blog.csdn.net/qq_40971025/article/details/105589869
https://blog.csdn.net/weixin_40702638/article/details/83304415

你可能感兴趣的:(深度学习及Python相关知识)