本文主要介绍了linux系统下深度学习系统的搭建,主要的安装思路如下:
首先安装当下热门的linux操作系统Ubuntu16.04,系统下载的链接如下:
https://www.ubuntu.com/download/desktop
安装完系统后,安装1080ti的显卡驱动,可以在Nvidia的官网下载到驱动
下载完成后,把文件放在系统的默认文件夹下,作者把文件放在home下,nvidia官网的下载的界面如下:
然后进入linux的指令操作界面,首先我们关闭X-server,如果不关闭无法进行显卡驱动的安装,输入:
sudo lightdm stop
然后安装刚刚下载完成的1080ti的驱动,假设你下载下来的文件名是:1080ti.run
chmod +x 1080ti.run
sudo ./1080ti.run
在安装CUDA前,需要对ubuntu的GCC进行降级,否则CUDA无法编译通过,我第一次安装就是因为GCC未降级,跑mnist时未能调用GPU运行。具体参见如下链接:
http://www.cnblogs.com/xujianqing/p/6142963.html
为了加速训练时的速度,接着我们进行cuda和cudnn的安装,进入nvidia的官网,下载cuda,作者选择的配置如图所示:
如果你的文件名为:cuda_8.0.61_375.26_linux.run
那么进入命令行界面,输入:
chmod +x cuda_8.0.61_375.26_linux.run
sudo ./8.0.61_375.26_linux.run
同样会出现之前的“”安装用户须知“”,按下“”ctrl+c跳过“”为CUDA添加环境变量:
安装完cuda后,需要添加环境变量,假设CUDA是默认的安装路径,打开终端,具体的操作如下:
- sudo gedit ~/.bashrc
在打开的文本文件末尾加上两行写入:
- export PATH=/usr/local/cuda-8.0/bin:$PATH
- export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
继续添加:
- sudo gedit /etc/profile
sudo gedit /etc/profile
在打开的文件中输入:
注意:这一行代码网上很多是错误的,PATH与后面的等号不能存在空格
- export PATH=/usr/local/cuda/bin:$PATH
export PATH=/usr/local/cuda/bin:$PATH
-
-
-
-
-
-
创建链接文件,在命令行输入:
- sudo gedit /etc/ld.so.conf.d/cuda.conf
sudo gedit /etc/ld.so.conf.d/cuda.conf
在打开的文件末尾加上一行保存:
- /usr/local/cuda/lib64
/usr/local/cuda/lib64
(三)CUDNN安装:
CUDNN的下载比较麻烦,需要注册Nvidia的账号,注册完成之后,下载cudnn6.0:
然后进行解压,并将文件覆盖到指定目录,具体操作如下,作者使用的是cuda6.0,
不同版本的cudnn需要进行对应的更改,进入cudnn下载的目录,然后:
- tar xvzf cudnn-8.0-Linux-x64-v5.1.tgz
- sudo cp cuda/include/cudnn.h /usr/local/cuda/include
- sudo cp cuda/lib64/libcudnn.so* /usr/local/cuda/lib64
- sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn.so*
tar xvzf cudnn-8.0-Linux-x64-v5.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn.so* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn.so*
- sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5
- sudo ln -sf libcudnn.so.5 libcudnn.so
- sudo ldconfig
sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig
注意:作者这里最后使用的时CuDNN5.1的版本,但操作方式相同,原因会在后面详细说明
(四)Tensorflow安装:
anaconda安装:
和N卡相关的软件我们都已安装好,在安装tensorflow前,先进行科学计算库anaconda的安装。
本文是基于anaconda安装tensorflow的,在官网上下载对应的安装包,作者选择的是linux 64位 ,Python版本为2.7
安装完anaconda以后,使用conda命令在终端下新建一个tensorflow的环境,
输入指令后系统会自动下载所依赖的软件库
- conda create -n tensorflow python=2.7
conda create -n tensorflow python=2.7
tensorflow安装:
进入正题了,首先进入tensorflow的环境,输入:
- source activate tensorflow
source activate tensorflow
(这一步时配置tensorflow环境,tensorflow还未安装)
进入tensorflow环境后,开始安装tensorflow,输入:
- pip install tensorflow
pip install tensorflow
如果下载速度过慢,可以搭个梯子,在github上tensorflow的官网也可下载
安装完tensorflow后,在终端中进入python
测试
- python
- import tensorflow as tf
python
import tensorflow as tf
若没有报错,则安装成功
jupyter notebook安装:
在终端下显然不能够便捷地调试和编译深度学习程序,因此作者推荐安装jupyter notebook,同样地,打开终端,进入tensorflow环境,输入:
- pip install jupyter notebook
pip install jupyter notebook
安装完成后,在终端输入 jupyter noteook即可打开,记住要在tensorflow的环境下打开,因为我们是把jupyter安装在此环境下的。 (五)远程连接教程:
为了方便远程操控,作者用windows7远程连接安装好上述功能的linux操作系统,具体步骤如下:
windows端:
下载putty用于远程连接linux,在此处输入目标计算机的ip地址
登录到远程计算机后,输入账户和密码,就可以进入远程计算机的终端了(请先配置完linux端再进行此操作)
linux端
这里作者推荐这两篇博客,写的很详细,交叉阅览,很快能掌握:
解决了如何生成秘钥的问题:
http://blog.csdn.net/u013473520/article/details/50696771
解决了如果登陆失败,则有可能是服务器防火墙设置的问题
http://blog.csdn.net/bitboy_star/article/details/51427306
(六)总结一下安装思路:
(1)先安装linux操作系统,
(2)安装对应的显卡驱动,以及深度学习用的加速库CUDA和CUDNN。
(3)安装anaconda
(4)在tensorflow环境下安装tensorflow和jupyter notebook
(5)远程配置
(七)目前已知安装过程中遇到的问题汇总
安装过程中遇到很多问题,这里把问题都贴出来以减少大家的重复安装时间
(1)CuDNN版本选择
在配置CuDNN时,我一开始选择的版本是CuDNN6,但是因为我tensorflow中,整合的时cuda8.0+CuDNN5.1版本,因此在运行mnist时,会提示:
缺少cuda5.0,no such file or directory。解决这个问题有两个办法:
1.如果想使用6.0的CuDNN直接去github上面下载tensorflow的源码,使用bazel进行编译,具体可以参考这篇使用bazel编译tensorflow的教程:
http://blog.csdn.net/zhaoyu106/article/details/52793183/
2.在nvidia的网站上下载CuDNN5.1版本,按照(三)中的流程重新覆盖安装
(2)配置SSH远程访问
如果按照(五)中配置完jupyter notebook的远程访问还不能访问,一种原因是因为没有安装SSH server,这里给出安装ssh server的网址:
https://jingyan.baidu.com/article/9c69d48fb9fd7b13c8024e6b.html
有很详细的linux端配置ssh教程和如何在windows端连接的教程
(3)启动流程
linux端:按下启动键,windows端:打开putty,远程访问linux主机,启动tensorflow环境,启动jupyter notebook,在浏览器中打开jupyter notebook。此时运行mnist例子是没有问题的。给出一个mnist例子的链接:
https://github.com/JimReno/TensorFlow-Examples/tree/master/examples/3_NeuralNetworks
复制里面的convolutional_network到你新建的jupyter notebook下,然后运行。
(4)TIPS
1.在训练过程中,如果需要查看显卡使用情况可以在终端输入查看:
- nvidia-smi
nvidia-smi
2.如果在linux上的下载速度太慢,可以在windows搭梯子,提前把tensorflow和numpy等安装包下载好,然后直接pip install下载的文件就可以了。
(5) GCC自动升级问题:
用了一周左右,发现gcc自动升级到5.4之后,跑程序的时候无法使用cuda加速了。
解决办法:降级GCC到4.9
此外,对linux操作系统不熟悉的读者,安装过程中可能会出现很多问题,因此我推荐一些我安装时查阅的博客和网站,其次大家可以把遇到的问题放在百度里面搜索,搭建环境这类的博客文章很多。
参考文献:
cuda添加环境变量:http://blog.csdn.net/Tcorpion/article/details/52740920
极客学院的tensorflow安装指南:http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html
和本文类似的安装tensorflow的指南,可以交叉阅读:http://blog.csdn.net/dabokele/article/details/53013921
CUDA安装时,如果GCC的降级,和CUDA samples的运行可以参考:http://www.linuxidc.com/Linux/2017-01/139320.htm
python的官网也有tensorflow-gpu的whl包,下载完成后用pip命令安装即可https://pypi.python.org/pypi/tensorflow-gpu