基于深度学习的计算机视觉开发环境搭建

(Ubuntu16.04+cuda9.0+cuDNN7.4.2+tensorflow-gpu+Keras安装)

说明:大家搭建开发环境时如果是学习的目的,没有必要追求安装操作系统、驱动和软件的最新版本。一是最新版本可能会有坑要填,二则学习他人的代码(如Keras和Tensorflow)和最新版本可能会有兼容性问题。具体的cuda和cuDNN安装的版本要视自己的GPU配置而定。


1. 安装nvidia驱动

首先去Nvidia官网上查看适合你的GPU的驱动

选择GPU产品类型(本人用的是NVIDIA TITAN Xp),查找适合的驱动如下图:

img1.png

找到的驱动版本如下所示:

img2.png

下载NVIDIA驱动安装包(.run格式)。下载后的文件为:

/home/bai/Downloads/NVIDIA-Linux-x86_64-410.78.run

注意:这里的/home/bai是我机子上的路径;你的具体文件路径会有不同(下同)

run格式文件安装较麻烦。

首先要禁用nouveau驱动。Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动。Ubuntu默认集成了Nouveau驱动。而用户在安装NVIDIA官方私有驱动的时候Nouveau又成为了阻碍。若不禁用Nouveau,安装时总是报错。

具体步骤如下:

  • nouveau禁止命令写入文件

sudo vim /etc/modprobe.d/blacklist.conf

文件末尾添加以下语句:

blacklist nouveau 
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
  • 调用指令禁止nouveau

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
  • 更新内核

sudo update-initramfs -u
  • 重启系统

sudo reboot
  • 进入tty模式

ctrl + alt+ F1
  • 关闭x server

sudo service lightdm stop 
sudo init 3
  • 切换NVIDIA安装包指定目录,赋予权限并进行安装

cd ~/Downloads
mv NVIDIA-Linux-x86_64-410.78.run nvidia.run
chmod +x nvidia.run
sudo sh nvidia.run --no-opengl-files

备注:no前面是双杠号

安装时可能有出错提示,不用理会,继续安装。

安装成功后,在图形界面下可以通过命令:

nvidia-settings

查看自己机器上详细的GPU信息,本人机器的信息如下:

img3.png

执行完上述后,重启系统:

sudo reboot


2. 安装CUDA

cuda是nvidia的编程语言平台,想使用GPU就必须要使用cuda。 下载cuda9.0的安装文件 。

首先选择合适的版本。

img4.png

下载安装文件和补丁文件:

img5.png

下载后的文件如下:

cuda_9.0.176_384.81_linux.run
cuda_9.0.176.1_linux.run
cuda_9.0.176.2_linux.run
cuda_9.0.176.3_linux.run
cuda_9.0.176.4_linux.run

执行如下语句,运行runfile文件:

sudo sh cuda_9.0.176_384.81_linux.run
sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run

因为Nvidia驱动已经安装,这里就不要选择安装Nvidia驱动。其余的都直接默认或者选择是即可。 使用:

sudo gedit /etc/profile

打开profile文件,在末尾处添加(注意不要有空格,不然会报错):

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

重启电脑:

sudo reboot

测试cuda的Samples

cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

如果显示的是有关GPU的信息,则说明安装成功了。

测试cuda也可以通过命令:nvcc -V 查看。输出如下图所示:

img8.png

3. 安装cuDNN

去官网下载与CUDA 9.0搭配的cudnn版本。下载cudnn需要注册一个NIVDIA账号。

https://developer.nvidia.com/rdp/cudnn-download

官方已经给出了cuda与cudnn搭配的建议。

img6.png

我下载的是 cuDNN v7.4.2。在下图所示选择cuDNN Library for Linux,下载cudnn-9.0-linux-x64-v7.4.2.24.tgz

img7.png

解压:

tar -xvf cudnn-9.0-linux-x64-v7.4.2.24.tgz

拷贝相关的库文件:

sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

删除文件原来的软链接:

cd /usr/local/cuda/lib64
sudo rm libcudnn.so libcudnn.so.7              //删除原来的链接
sudo ln -s libcudnn.so.7.4.2 libcudnn.so.7     //生成新的链接
sudo ln -s libcudnn.so.7 libcudnn.so
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
sudo ldconfig


4. 安装Anaconda

Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。

  1. 先去官方地址下载好对应的安装包 Ubuntu - anaconda

  2. 然后安装anaconda

bash ~/Downloads/Anaconda2-5.3.1-Linux-x86_64.sh

anaconda会自动将环境变量添加到PATH里面,如果后面你发现输出conda提示没有该命令,那么你需要执行命令source ~/.bashrc 更新环境变量,就可以正常使用了。 如果发现这样还是没用,那么需要添加环境变量。 编辑~/.bashrc 文件,在最后面加上

export PATH=/home/bai/anaconda2/bin:$PATH

保存退出后执行:source ~/.bashrc 再次输入conda list测试看看,应该没有问题!

  1. anaconda国内镜像配置

    清华TUNA提供了 Anaconda 仓库的镜像,运行以下命令:

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

  即可添加 Anaconda Python 免费仓库。


5. 使用Anaconda安装 TensorFlow

创建tensorflow环境,环境名字可自己确定,这里本人使用tfgpu作为环境名:

conda create -n tfgpu python=3.6

备注:python的版本可自己选择。这里的python是安装在tfgpu环境下,不是Ubuntu自带的Python 2.7。

安装成功后激活tfgpu环境:

source activate tfgpu

在所创建的tfgpu环境下安装tensorflow的gpu版本, 执行命令:

conda install --channel https://conda.anaconda.org/anaconda tensorflow-gpu=1.9.0

备注:所安装的tensorflow-gpu版本号可自己确定,这里本人安装的是1.9.0。


6. 使用Anaconda安装jupyter notebook和spyder

如果tfgpu环境没有激活,运行下面的命令来启用TensorFlow 环境,

source activate tfgpu

运行下面的命令conda install ipython以及conda install jupyter安装jupyter notebook。

执行命令jupyter notebook,打开一个新的Jupyter Notebook,输入一行import tensorflow as tf并运行,如果没有出现任何错误,那么就安装成功了。

为了使用TensorFlow,需要在tfgpu环境下安装spyder:

conda install  spyder

注意: 这里安装的jupyter notebook和spyder是安装在tfgpu环境下,不是Anaconda自带的jupyter notebook和spyder,这样它们才能使用TensorFlow。每次使用时,需要先激活tfgpu环境。


7. 安装缺少的数值计算和数据分析相关包

在tfgpu环境下安装Anaconda没有安装的数值计算和数据分析相关包。这部分的安装根据所要开发的任务需要来安装,例如:

conda install keras
conda install  matplotlib
conda install  scikit-learn
conda install  h5py
conda install  pillow
conda install  -c menpo opencv3
conda install  seaborn

此时,开发环境搭建完毕。开发中需要升级时可自行更新版本,如keras的版本等。


有关基于深度学习的计算机视觉技术的学习,可参考课程《基于深度学习的计算机视觉:原理与实践》。