ubuntu16.04 + NVIDIA驱动 + CUDA + cuDNN + tensorflow-gpu + keras安装

  • 写在前面,一路安装走来,遇到很多TensorFlow、cuda、cudnn版本不兼容匹配的,后来,我找到了NVIDIA官方系统配置 ,可以按照这个来配置,避免多走弯路。

环境:
- ubuntu 16.04 64bit
- 显卡:NVIDIA Tesla k40m + 集成显卡

注:在NVIDIA DriverDownloads查找的最新为384.66,系统配置如下:
ubuntu16.04 + NVIDIA驱动 + CUDA + cuDNN + tensorflow-gpu + keras安装_第1张图片
但是,安装不成功!后选择375.66成功

  • 驱动:nvidia 375.66
  • 软件:cuda8.0 + cuDNN5.1

1.准备工作:

1.1 配置安装环境

若不安装第5步 tensorflow-gpu+keras,此处可省略。。

sudo apt-get update
sudo apt-get install python-dev python-pip python-nose gcc g++ git gfortran
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential

1.2 禁用自带的显卡驱动nouveau

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

在其中加入:

blacklist nouveau option nouveau modeset=0
sudo update-initramfs -u

1.3 加入环境变量

sudo gedit ~/.bashrc

在其中加入:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

执行

source ~/.bashrc

2. 安装NVIDIA显卡驱动

首先还是先去官网下载正确的显卡驱动,官网:http://www.geforce.cn/drivers
查看自己的显卡型号:

sudo lshw -numeric -C display

如果之前安装过nvidia驱动,先卸载:

sudo apt-get remove --purge nvidia-*

Ctrl-Alt+F1 进入命令行界面

cd Downloads

sudo /etc/init.d/lightdm stop #关闭当前图形环境令

sudo chmod a+x NVIDIA-Linux-x86_64-375.66.run #给驱动run文件赋予执行权限

sudo ./NVIDIA-Linux-x86_64-375.66.run --no-x-check
--no-nouveau-check --no-opengl-files  # 这句一定要加参数,不然就会循环登录。

如果进入循环登录,要再次Ctrl-Alt+F1 进入命令行界面,卸载驱动:
sudo apt-get remove –purge nvidia-*

  • –no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
  • –no-check 安装驱动时不检查X服务
  • –no-nouveau-check 安装驱动时不检查nouveau

后面两个参数可不加(Ps: 没懂 - 与 - - 的区别,貌似都可以,我上面写的是两个- -哦)。

sudo /etc/init.d/lightdm start #重新启动图形环境

reboot

3. 安装cuda

去官网下载:https://developer.nvidia.com/cuda-downloads

注意一定要下载runfile。

Ctrl-Alt+F1 进入命令行界面

cd Downloads

sudo service lightdm stop #禁用X服务
sudo /etc/init.d/lightdm stop #一样的命令

sudo sh cuda-8.0.44_linux.run --no-opengl-libs

注:第一条问是否安装nvidia驱动,选择no,后面一直输入yes就行

sudo /etc/init.d/lightdm start #启用服务

reboot

重启之后进入修改环境配置

sudo gedit ~/.bashrc

加入:

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

执行:

source ~/.bashrc

测试安装是否成功:

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery

sudo make

./deviceQuery

显示gpu信息,说明安装成功。

查看显卡情况:nvidia-smi

4. 配置cuDNN

官网下载:https://developer.nvidia.com/rdp/cudnn-download

注册账号之后就可以下载啦。(参考文献1下载的5.1,安装6.0没试)

cd Downloads/cuda

sudo cp -a include/cudnn.h /usr/local/cuda/include/ # 复制头文件

cd ./lib64

sudo cp -a lib* /usr/local/cuda/lib64/ #复制动态链接库

cd /usr/local/cuda/lib64/

sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件

sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 #生成软衔接

sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

5. tensorflow-gpu and keras

sudo pip install -U --pre pip setuptools wheel

sudo pip install -U --pre numpy scipy matplotlib scikit-learn scikit-image

sudo pip install -U --pre tensorflow-gpu==1.2

sudo pip install -U --pre keras

注:sudo pip install -U –pre tensorflow-gpu==1.2 , 若没有指定版本,则下载的是最新的版本,我在安装过程中出现以下了问题:
1. gpu=1.5 ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
2. gpu=1.4 ImportError:libcudnn.so.6: cannot open shared object file: No such file or directory

所以,最后选择了gpu1.2,测试成功。

6. 验证:

6.1 简单测试

首先关闭所有打开的终端并打开一个新的终端。

将目录(cd)更改为系统中除调用configure命令的tensorflow子目录之外的任何目录。

调用python:在命令行输入python
输入以下短程序:

import tensorflow as tf 
hello = tf.constant('Hello,TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

你应该看到“你好,TensorFlow!”。恭喜!
您也可以输入

print(tf.__version__)

查看安装的TensorFlow的版本。

参考文献

  1. 双显卡 ubuntu16.04 安装 NVIDIA驱动 + CUDA + cuDNN + tensorflow-gpu + keras
  2. http://wiki.ubuntu.org.cn/NVIDIA
  3. tensorflow安装所遇问题:libcudnn.so.6:cannot open sharedobject file: No such file or directory

你可能感兴趣的:(深度学习,环境配置)