Ubuntu16.04 Anaconda+Theano+Cuda8.0+Cudnn5.1+keras配置

Ubuntu16.04 Anaconda+Theano+Cuda8.0+Cudnn5.1+keras配置

之前配置深度学习keras环境没有配置GPU加速,这次重装了Ubuntu并重新配置环境。本次重点记录配置Cuda和Cudnn,剩余详细配置情况参考以下链接。
http://blog.csdn.net/qq_32329377/article/details/53008019#comments

1.安装Anaconda

官网下载Anaconda,版本根据Ubuntu系统以及想要使用的Python版本选择。
在下载的文件目录下打开终端输入:

~$ bash Anaconda2-5.0.1-Linux-x86_64.sh

按照步骤选择下一步知道安装结束。
安装结束后由于Anaconda官方服务器在国外,使用命令更新安装包非常慢,经常安装失败,所以切换到国内的清华大学提供的库。
终端输入:

conda config --add channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/'
conda config --set show_channel_urls yes

2.安装Theano、Tensorflow、Keras

因为安装了Anaconda,所以现在就可以直接使用conda命令来安装包。
终端输入:

~$ conda install theano
~$ conda install tensorflow
~$ conda isntall keras

这里解释一下为什么要装Tensorflow,因为keras默认后端为Tensorflow,之后需要将后端切换为Theano,所以为了省去一些不必要的麻烦,安装了Tensorflow。(不知道不安装有没有问题,可以尝试。。。)
安装完成可以尝试测试一下是否成功:

~$ python
~$ >>> import keras

出现using tensorflow backend说明安装成功了。

安装成功后,需要将后端切换。根据官方文档中的方法:
打开keras的配置文件(至少运行过一次keras)

~$ sudo gedit .keras/keras.json

讲文件中 ‘tensorflow’改为 ‘theano’就可以了。


3. Cuda8.0

目前cuda已经出到9.0了,在尝试安装了之后,笔记本NVIDIA驱动不支持,cuda自带的nvidia-384.81版本以及换了n个版本的驱动都不可以,无奈只能退回到Cuda8.0。下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive。
另外,官网上点击下载会直接跳到最新版本的下载界面,而不给出其他版本的下载地址,所以找到这个链接还是费了很大功夫的。。。
Ubuntu16.04 Anaconda+Theano+Cuda8.0+Cudnn5.1+keras配置_第1张图片
首先点击Release Notes,会出现文档,在右上角版本号之后有(older)点击链接才会出现之前的版本链接。(PS:如果有其他的方法,欢迎留言补充。)
注意下载runfile(local)版本,deb版本据说有很多坑。。。

3.1 安装NVIDIA驱动

选择合适的版本下载,下载完成后在安装时需要选择:
1)自行安装NVIDIA驱动。

  1. 可以在NVIDIA官网下载适合的驱动下载安装;(方法不详述,可自行百度)
    https://www.geforce.cn/drivers该链接可以搜索你的电脑适合的NVIDIA驱动。
  2. 在系统设置中附加驱动里安装驱动。
    最终在终端输入:
~$ nvidia-smi

可以看到版本信息表示安装成功了。
2)安装Cuda携带的驱动
下载的Cuda8.0是自带nvidia-375.26驱动版本的,如果你的电脑适合该驱动可免去自己安装的麻烦。
但是该驱动版本较低,如果如果想要安装较高的版本,请使用第一种方式。

3.2 安装Cuda8.0
安装Cuda过程中,需要注意,如果不安装自带NVIDIA驱动,在选择是否安装nvidia-375.26时一定要选no
之后的选择按默认的选择即可。
安装命令:

~$ sudo ./cuda_8.0.61_375.26_linux.run

安装完成后需要配置环境变量,在~/.bashrc之后添加:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 

设置环境变量和动态链接库,终端输入:

~$ sudo gedit /etc/profile

打开profile文件,在末尾添加:

export PATH=/usr/local/cuda/bin:$PATH

保存之后,创建链接文件

~$ sudo gedit /etc/ld.so.conf.d/cuda.conf

在文件中添加:

/usr/local/cuda/lib64

保存退出,执行命令行:

sudo ldconfig

使链接立即生效。

3.3测试Cuda

终端输入:

~$ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
~$ sudo make
~$ sudo ./deviceQuery 

返回gpu信息说明Cuda安装成功,如下图所示:
Ubuntu16.04 Anaconda+Theano+Cuda8.0+Cudnn5.1+keras配置_第2张图片


4.配置Cudnn

下载Cudnn需要注册账户,登录后即可看到下载页面,选择对应Cuda的版本。

Ubuntu16.04 Anaconda+Theano+Cuda8.0+Cudnn5.1+keras配置_第3张图片

我选择的是Cudnn v5.1,下载完成后解压,

~$ sudo tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz 

解压后进行如下操作:

~$ 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*

至此Cuda+Cudnn就配置结束了。

配置.theanorc文件

~$ sudo gedit ~/.theanorc 

在打开的空文件中添加一下信息:

[global] 
floatX=float32 
device=gpu 

[nvcc] 
fastmath = True
optimizer_including=cudnn

[cuda] 
root=/usr/local/cuda-8.0

[lib]
cnmem = 0.7

在python环境下输入:import theano出现一下信息表示配置成功。
Ubuntu16.04 Anaconda+Theano+Cuda8.0+Cudnn5.1+keras配置_第4张图片

这里参考其他的教程中cnmem都大于0.8,但是我的环境中cnmen=0.8会出现如下错误:

ERROR (theano.sandbox.cuda): ERROR: Not using GPU. Initialisation of device gpu failed:
initCnmem: cnmemInit call failed! Reason=CNMEM_STATUS_OUT_OF_MEMORY. numdev=1

经过调试最大只能为0.7,具体原因还有待研究。

Cuda配置部分参考https://www.cnblogs.com/xujianqing/p/6142963.html
Cudnn配置部分参考http://m.blog.csdn.net/u012815879/article/details/78135663

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