深度学习环境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow并配置远程访问jupyter notebook

时间:2021-10-07 22:46:05

本文主要介绍了linux系统下深度学习系统的搭建,主要的安装思路如下:

linux系统安装:

首先安装当下热门的linux操作系统Ubuntu16.04,系统下载的链接如下:

https://www.ubuntu.com/download/desktop

(一)显卡驱动安装:

安装完系统后,安装1080ti的显卡驱动,可以在Nvidia的官网下载到驱动

下载完成后,把文件放在系统的默认文件夹下,作者把文件放在home下,nvidia官网的下载的界面如下:

深度学习环境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow并配置远程访问jupyter notebook

然后进入linux的指令操作界面,首先我们关闭X-server,如果不关闭无法进行显卡驱动的安装,输入:


sudo lightdm stop



然后安装刚刚下载完成的1080ti的驱动,假设你下载下来的文件名是:1080ti.run


chmod +x 1080ti.run
sudo ./1080ti.run



这里注意:安装时会出现类似于“”安装用户须知“”的文档,一直按“”enter“”是没法跳过的,直接用“ctrl+c”跳过,然后输入“”accept“”

(二)CUDA安装:

CUDA的安装一切以官方文档为准,若遇到问题,没有办法的话可以参考官方文档:

GCC降级

在安装CUDA前,需要对ubuntu的GCC进行降级,否则CUDA无法编译通过,我第一次安装就是因为GCC未降级,跑mnist时未能调用GPU运行。具体参见如下链接:

http://www.cnblogs.com/xujianqing/p/6142963.html


软件安装

为了加速训练时的速度,接着我们进行cuda和cudnn的安装,进入nvidia的官网,下载cuda,作者选择的配置如图所示:

深度学习环境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow并配置远程访问jupyter notebook

如果你的文件名为: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
继续添加:
sudo gedit /etc/profile
在打开的文件中输入:
注意:这一行代码网上很多是错误的,PATH与后面的等号不能存在空格
export PATH=/usr/local/cuda/bin:$PATH
 
  
 
  
 
  
 
  
 
  
 
  
 
 
创建链接文件,在命令行输入:
sudo gedit /etc/ld.so.conf.d/cuda.conf
在打开的文件末尾加上一行保存:

/usr/local/cuda/lib64


(三)CUDNN安装:

CUDNN的下载比较麻烦,需要注册Nvidia的账号,注册完成之后,下载cudnn6.0:
深度学习环境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow并配置远程访问jupyter notebook

然后进行解压,并将文件覆盖到指定目录,具体操作如下,作者使用的是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*​

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

深度学习环境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow并配置远程访问jupyter notebook

安装完anaconda以后,使用conda命令在终端下新建一个tensorflow的环境,

输入指令后系统会自动下载所依赖的软件库

conda create -n tensorflow python=2.7



tensorflow安装:

进入正题了,首先进入tensorflow的环境,输入:

source activate tensorflow

(这一步时配置tensorflow环境,tensorflow还未安装)


进入tensorflow环境后,开始安装tensorflow,输入:

pip install tensorflow


如果下载速度过慢,可以搭个*,在github上tensorflow的官网也可下载
深度学习环境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow并配置远程访问jupyter notebook

安装完tensorflow后,在终端中进入python

测试

python
import tensorflow as tf


若没有报错,则安装成功

jupyter notebook安装:

在终端下显然不能够便捷地调试和编译深度学习程序,因此作者推荐安装jupyter notebook,同样地,打开终端,进入tensorflow环境,输入:

pip install jupyter notebook
安装完成后,在终端输入 jupyter noteook即可打开,记住要在tensorflow的环境下打开,因为我们是把jupyter安装在此环境下的。

(五)远程连接教程:

为了方便远程操控,作者用windows7远程连接安装好上述功能的linux操作系统,具体步骤如下:

windows端:

下载putty用于远程连接linux,在此处输入目标计算机的ip地址

深度学习环境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow并配置远程访问jupyter notebook

登录到远程计算机后,输入账户和密码,就可以进入远程计算机的终端了(请先配置完linux端再进行此操作)

深度学习环境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow并配置远程访问jupyter notebook

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例子的链接:

复制里面的convolutional_network到你新建的jupyter notebook下,然后运行。

(4)TIPS
1.在训练过程中,如果需要查看显卡使用情况可以在终端输入查看:
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