Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建

本人刚开始接触深度学习,在搭建环境时出了不少大大小小的问题,最终搭建成功,写下配置过程希望能为他人提供一定的借鉴。(如有存在错误的地方请大家指正)
电脑为ubuntu16.04,gtx1080Ti 显卡


1. CUDA安装

(1)下载cuda的包放在电脑中,根据自己的系统选择版本,注意Ubuntu下载请务必下载runfile文件(后缀为.run),不能是其它文件
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第1张图片
(2)在终端对下载好的包进行安装操作
用cd命令进行文件夹打开(cd命令的功能是切换到指定的目录:命令格式:cd [目录名]
目录名有几个符号有特殊的含义,“..”代表上一级目录、“~”代表HOME目录、“-”代表前一目录。注意cd和后面的符号是有空格间隔的),本次安装中cuda包早下载文件夹进行存放故 cd 下载
打开文件夹后利用 sudo sh xxx 进行cuda的安装。此处xxx为你下载的cuda包的版本。因为调用sudo权限所以需输入密码,输入密码完成后会出现类似用户协议的的内容,一直点击回车将该部分读完,最后会会有提示输入accept接受协议。
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第2张图片
在后边的安装内容中需注意的是,会提示你是否需要安装NVIDIA的显卡驱动,若载安装cuda之前已经安装好显卡驱动则该步骤选择n。在该命令出现时会出现cuda中包含的显卡驱动的版本号,也可以与你之前安装的显卡驱动进行比较,查看已经安装好的显卡驱动版本,可以在终端输入:nvidia-smi 进行查看。通常自己装的显卡驱动版本都比这个高。下面的语句是cuda询问是否进行驱动安装的语句,在该处需要注意。

  Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: n

其他部分内容直接选择y或enter进行操作即可。下图为安装过程。
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第3张图片
(3)验证CUDA安装是否成功
利用nvcc --version命令进行验证。在验证是笔者提示nvcc未安装,又按照命令提示进行了nvcc的安装,如下图所示
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第4张图片
安装命令为sudo apt install nvidia-cuda-toolkit 安装时间较长。安装完成后继续输入nvcc --version命令进行验证,结果如下则表示安装成功。
nvcc安装成功
(4)添加环境变量【注:关于这一点,安装完cuda之后,命令行中有提示!!!细心看一下】
路径提示

$ sudo gedit /etc/profile命令进行环境变量的添加。输入该命令后最出现如下界面,在文档的最后边输入:

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

然后点击保存并关闭打开的文件,再在终端中输入:source /etc/profile,使设置生效。
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第5张图片

Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第6张图片

在profile文件中进行修改时,终端产生如下提示,笔者未管,继续执行 source /etc/profile命令是刚才的设置生效。然后笔者又执行了sudo vi /etc/profile命令,结果如下,(需注意的是从该窗口退出的方法为,先点击ESC键,然后输入 :wq 共三个字符,然后确定)命令结果中公环境变量已经包含进去。
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第7张图片
(5)检验环境是否设置好
打开终端,输入cuda,接着按2次”Tab键“,如果有弹出的命令提示,就说明环境配置成功。
这里写图片描述

cuDNN安装

!!注意本部分教程本来笔者安装的是v5.1版本,但在安装tensorflow之后,进行测试时提示笔者安装的tensorflow找不到cudnn.so.6等错误提示,因此笔者又重新安装的cudnn v6.0版本,安装步骤与下面的一样,附v6.0百度云链接链接: https://pan.baidu.com/s/1bpFB5nh 密码: yc7u
首先下载cudnn的安装包,本次使用的为v5.1版本,下载百度云链接为链接: https://pan.baidu.com/s/1mij4Z1I 密码: 1rpf
将包下载完成后有终端打开文件包的存放文件夹,本此安装中将包放在下载文件加中。

cd 下载
利用tar命令对包进行解压
sudo tar xvf cudnn-8.0-linux-x64-v5.1.tgz

解压后会在存放路径中产生一个cuda文件夹,其内部包含include 与lib64 文件夹,include中为cudnn的头文件cudnn.h lib64中为库文件libcudnn.so libcudnn.so.5 libcudnn.so.5.1.10 libcudnn_static.a 其中,libcudnn.so.5.1.10是动态链接库文件,libcudnn.so.5 是指向libcudnn.so.5.1.10的符号链接文件,libcudnn.so是指向libcudnn.so.5 的符号链接文件,libcudnn_static.a 是静态库文件。
然后需要把头文件与库文件分别拷贝到前一步安装的cuda路径中,本机的cuda安装路径为/usr/local/cuda
利用命令进行拷贝,代码为

cd cuda     %这个cuda是刚刚解压的包出来的文件夹,即本命令是接着上一命令在同一终端输入的

sudo cp lib64/* /usr/local/cuda/lib64/

sudo cp include/* /usr/local/cuda/include/

这时候本来已经可以了,但是由于权限的原因原来的两个符号链接文件(libcudnn.so,libcudnn.so.5)已经失效了,直接编译便会报错,所以这时手动生成符号链接。
解决方法是:在本机安装cuda的文件中将软链接解除,再修改文件权限,并创建新的软连接。命令如下
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第8张图片

Anaconda 安装

各大深度学习框架支持Python较为居多,Python在科学计算和数据挖掘领域可以说是独领风骚。虽然有来自R、Julia等语言的竞争压力,但是Python的各种库实在是太完善了,Web开发、数据可视化、数据预处理、数据库连接、爬虫等无所不能,有一个完美的生态环境。仅在数据挖据工具链上,Python就有NumPy、SciPy、Pandas、Scikit-learn、XGBoost等组件,做数据采集和预处理都非常方便,并且之后的模型训练阶段可以和TensorFlow等基于Python的深度学习框架完美衔接。所以这里我们也选择Python作为深度的学习的开发语言。
Anaconda包括里python和几乎平时开发所有库,不用总发愁开发中所需要的功能库的安装最后就是spyder的主界面。调试程序和变量查看窗口都很好用。

Anaconda3-4.2.0-Linux-x86_64.sh版本该版本为python3.5, Anaconda3-4.3.1-Linux-x86_64.sh,Anaconda3-4.4.0-Linux-x86_64.sh对应的为python3.6。本次安装选择python3.5版本
anaconda的下载链接为 https://repo.continuum.io/archive/
下载完成后需对anaconda进行安装,进入anaconda存放目录,利用命令

bash Anaconda3-4.2.0-Linux-x86_64.sh 

进行安装,进入安装后会进入用户协议的于都一路确定最后输入yes同意协议,同意后会询问安装路径,按enter键同意进入安装,安装完成后会询问是否添加环境变量,输入yes。注意这里不要用sudo bash 命令进行安装,笔者第一次安装时用的sudo bash命令进行安装,但是在后续用pip命令进行tensorflow时,提示pip版本过低,需要进行更新,但是依照终端给出的命令进行操作时,提示权限不够无法安装,这时再用sudo命令进行更新pip依旧提示无效,然后笔者选择关机重启直接导致pip功能无法使用,在重装anaconda后依旧有问题,最终无奈重装系统,因此在anaconda安装时不要用sudo bash安装
anaconda安装后最好进行换源操作,因为pip ,conda,apt-get等命令进行操作时候链接的是境外的镜像文件,速度比较慢。可以将源换为国内源。
1.更换pip源:
cd到根目录,命令行输入:sudo mkdir .pip,新建一个名为“.pip”的文件夹。
创建pip配置文件:sudo vi ~/.pip/pip.conf,在vi界面中插入以下这句话:

[global]
index-url = https://pypi.douban.com/simple

然后按esc键,按下“:wq”(注意不包含双引号,记得要包括冒号),然后回车退出。
即可把pip源更新为国内豆瓣镜像
2.更换conda源
除了可以pip安装之外,也可以使用conda install xxx来安装第三方python包,要更换为国内镜像,创建配置文件:sudo vi ~/.condarc
加入以下几句:

channels:

- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

- defaults

show_channel_urls: true

然后按esc键,按下“:wq”(注意不包含双引号,记得要包括冒号),然后回车退出。
3.更换apt-get源
直接看这里:Ubuntu 14.04 更换阿里云源
备份旧版本:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份

修改文件:

sudo vim /etc/apt/sources.list

在底部加入以下语句:

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

保存退出。

Tensorflow 及 keras 安装

在anaconda安装完成后需要进行的是tensorflow学习环境的安装,在anaconda下安装tensorflow需要建立anaconda的conda执行环境
常用命令:列出当前 conda 环境所链接的软件包 conda list
建立conda环境 conda create -n 环境名 -c 镜像源
检查Anaconda的config:conda config --show
利用命令 conda create -n tensorflow-gpu python=3.5 建立一个名为tensorflow-gpu的python3.5环境,注意要写对python版本。
在此步骤时,由于笔者前面对conda镜像进行了换源,但是换过清华源之后conda一直链接不上清华的源,产生了报错,于是又将清华源删除,换为默认源具体如下图所示
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第9张图片

从图中可以看出 conda config --show 后显示channels已经有清华的源地址,但是在后续创建conda环境时显示无法链接,因此利用命令conda config –remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 将清华的源地址移除换为原来的默认源 。然后再次 conda config –show 显示清华源已经移除,再次建立conda环境是成功建立。
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第10张图片
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第11张图片
conda环境的激活与关闭

source activate tensorflow-gpu  激活 tensorflow-gpu 环境
source deactivate tensorflow-gpu  关闭 tensorflow-gpu 环境

安装tensorflow时首先激活建立的环境,然后可以直接在激活的环境中pip install tensorflow-gpu 这里gpu版本为tensorflow-gpu,非gpu版本为tensorflow 因为在前面安装玩anaconda后我们进行了pip换源,将pip改为了国内的豆瓣源因此下载速度还是很快的。
笔者在安装时已经下载好tensorflow-gpu的安装包,因此直接到开存放路径进行安装,具体步骤如下图中所示。
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第12张图片

注意:此处进行pip安装时可能会出现pip版本过低的提示,根据终端给出的命令提示进行升级即可。这点在安装anaconda时已经提到过,在安装anaconda时用普通的bash安装不用sudo bash 安装即可以顺利升级pip版本。
安装keras
安装keras时直接在创建的环境中 pip install keras 即可
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第13张图片

测试 安装的tersorflow 和 keras

测试代码为
import tensorflow as tf
hello = tf.constant(‘hello tensorflow!’)
sess = tf.Session()
print(sess.run(hello))

Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第14张图片

向tensorflow的世界打个招呼吧,测试结果将会打印出 hello tensorflow
在测试代码时可能会出现如上图的warning存在的问题, 但是不影响结果,只是执行速度比较慢,据说是因为为了不同框架上的可迁移性,还没有对cpu进行编译,他建议你为了更快的速度,可以从编码编译,执行速度会更快。参考https://github.com/tensorflow/tensorflow/issues/8037
然后 import keras 会提示using tensorflow backend 说明安装keras成功
现在是在建立的tensorflow-gpu环境中是可以了,但是当我们使用anaconda的IDE spyder进行编辑时候,如果没有激活这个环境依旧会报错,发现无法导入tensorflow模块,那么问题来了,以后是否每次使用TensorFlow,我们都要激活环境 : source activate tensorflow-gpu,然后才能去使用TensorFlow呢?这岂不是很不方便,当我们需要在 spyder中 调试很多行程序时,岂不是很不方便!
解决方法是 在建立的环境中用 conda list命令看下tensorflow的安装路径
Ubuntu16.04+CUDA+CUDNN+Anaconda+Tensorflow+keras深度学习环境搭建_第15张图片
然后将该路径/home/server/anaconda3/envs/tensorflow-gpu下lib/python3.5/site-packages 文件夹中所有文件(即site-packages中所有文件)anaconda安装路径下的lib/python3.5/site-packages中,注意复制时如果出现同名文件应选择替换。
这样就可以在anaconda在带的IDE中直接import tensorflow as tf 了。
到这里深度学习的框架已经搭建完毕。

opencv的安装

由于我们是安装了anaconda3之后在去安装opencv,网上有很多教程都不是针对这个,开始安装时笔者也没有在意,然后导致安装的opencv对应的puthon版本不正确,以及在opencv库cmake 和make时各种出错导致笔者安装opencv很混乱,这里简单说一下。
笔者在安装时最后是吧几篇不同的教程里面说的系统依赖项全部安装了一边,然后cmake也是按照不同的教程cmke了多次,最终是按照这篇博客 里边的cmke命令cmke成功。在这里之前笔者还有用这篇博客和这篇博客里面的cmake命令编译过但是并未成功。按照第一篇博客说的方法成功后笔者,也出现了他出现的问题,除他在博客中提到的命令外我还conda安装了一个别的库,但是当时并未截图。。。编译基本是报了什么错接着去搜索,然后加命令修改,比较麻烦的过程。但是最终安装成功哦成就感还是很强的。笔者opencv这部分说的并不是很清楚,各位如果需要安装的话还需呀自己多查找资料尝试安装。

最后,第一次写这个有什么错误请大家指正,预祝搭建环境顺利成功。

你可能感兴趣的:(深度学习)