ubuntu14+cuda8+cudnn5+anaconda2+caffe

本人的系统环境:Ubuntu14.04
安装前准备:
  $ lspci | grep -i nvidia
  $ uname -m && cat /etc/*release
  $ gcc --version
  $ uname -r(查看系统内核版本)
  $ sudo apt-get install linux-headers-$(uname -r)  (安装对应的kernels header和开发包)

1. 禁用 nouveau 驱动
  打开终端输入:
  $ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
  在打开的文件中输入:
      blacklist nouveau
      options nouveau modset=0
  保存退出,在终端执行:
  $ sudo update-initramfs -u
  重启电脑。
  验证驱动是否禁用成功:
  $ sudo lspci | grep nouveau(如果没有内容,则禁用成功。)

2.安装CUDA 8.0
  有的人说先安装显卡驱动,不使用cuda里面带的驱动,但是我真的是装了五六次没成功,安装完后会出现各种各样的问题```````血泪史啊!
  运行放在/home下的下载好的 runfile (假设cuda.run)。
  重启电脑,进入登录界面的时候,不要登录进入桌面(否则可能会失败,若不小心进入,请重启电脑),直接按 Ctrl+Alt+F1 进入文本模式(命令行界面),登录账户。
  关闭图形化界面:
  $ sudo service lightdm stop
  $ sudo sh cuda.run
  遇到提示是否安装openGL ,选择no,其他的可以一路accept, yes或回车即可。安装成功后,会显示installed,否则会显示failed。
  重启图形化界面
  $ sudo service lightdm start
  登录时能进入桌面,不会一直在重复登录,成功离我们不远了。
 

  验证是否安装成功:
  $ ls /dev/nvidia*
  若生成 4 个左右 Nvidia 开头的文件,说明此步安装成功。此时已经安装好显卡驱动和CUDA 8.0。
  如果没有/dev/nvidia-num或者什么都没有,那么可以试试下面的操作:
    把下面的 .sh 文件随便命个名(我命名为 n.sh )
    #!/bin/bash
    /sbin/modprobe nvidia
    if [ "$?" -eq 0 ]; then
    # Count the number of NVIDIA controllers found.
    NVDEVS=`lspci | grep -i NVIDIA`
    N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
    NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
    N=`expr $N3D + $NVGA - 1`
    for i in `seq 0 $N`; do
    mknod -m 666 /dev/nvidia$i c 195 $i
    done
    mknod -m 666 /dev/nvidiactl c 195 255
    else
    exit 1
    fi
    /sbin/modprobe nvidia-uvm
    if [ "$?" -eq 0 ]; then
    # Find out the major device number used by the nvidia-uvm driver
    D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
    mknod -m 666 /dev/nvidia-uvm c $D 0
    else
    exit 1
    fi
  然后执行
  $ sudo chmod +x Nka.sh
  $ sudo ./n.sh
  $ ls /dev/nvidia*
   显示:
    /dev/nvidia0
    /dev/nvidiactl
    /dev/nvidia-uvm
  为了下次开机简单,我们把上述文件添加到启动程序:
  $ sudo vi /etc/rc.local
  如果你是第一次打开这个文件,它应该是空的(除了一行又一行的 # 注释项外)。这文件的第一行是#!/bin/sh -e
  把 -e 去掉(这步很重要,否则它不会加载这文本的内容)
  然后把 n.sh 的内容除了 #!/bin/bash 外复制到其中,(before exit 0 )保存退出。
  下次重启时,你应该能直接看到 /dev 目录下的三个 nvidia 的文件

  输入: $ nvidia-smi查看显卡驱动和其他信息。
  配置环境变量:
  $ sudo gedit /etc/profile
  打开 gedit ,最后两行输入:
     export PATH=/usr/local/cuda-8.0/bin:$PATH
     export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
  保存退出,环境变量配置完成。

3.安装 cuDNN5.1
  将下载好的压缩包放在/home下:
  $ sudo tar xvf cudnn.tgz
  $ cd cuda/include
  $ sudo cp *.h /usr/local/include/
  $ cd ../lib64
  $ sudo cp lib* /usr/local/lib/
  $ cd /usr/local/lib# sudo chmod +r libcudnn.so.5.1.10
  $ sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5
  $ sudo ln -sf libcudnn.so.5 libcudnn.so
  $ sudo ldconfig
  PS:libcudnn.so后面跟的数字可能和你下载的 cudnn 包小版本的不同而不同,去~/cuda/lib64下看一眼,相对应地进行修改。

4.安装anaconda2
  自行下载对应安装包:
  $ bash Anaconda2-4.3.1-Linux-x86_64.sh
  在安装过程中,会问安装路径,按回车即可。询问是否添加到~/.bashrc中,回复yes即可。
  安装完成后,执行命令如下:
  $ source ~/.bashrc
  随后,输入如下命令可即查看已经安装完成的库:
  $ conda list

5.编译caffe
  安装依赖:
  $ sudo apt-get update
  $ sudo apt-get upgrade
  $ sudo apt-get install -y build-essential cmake git pkg-config
  $ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev protobuf-compiler
  $ sudo apt-get install -y libatlas-base-dev
  $ sudo apt-get install -y --no-install-recommends libboost-all-dev
  $ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
  下载:
  $ git clone https://github.com/BVLC/caffe.git
  $ cd caffe
  $ cp Makefile.config.example Makefile.config
  $ sudo gedit Makefile.config(按照自己电脑配置更改)
  $ make all   
  $ make test    
  $ make runtest
  $ make pycaffe  
  配置caffe完成后,我们可以利用MNIST数据集对caffe进行测试,过程如下:
  将终端定位到Caffe根目录:cd ~/caffe
  下载MNIST数据库并解压缩:./data/mnist/get_mnist.sh
  将其转换成Lmdb数据库格式:./examples/mnist/create_mnist.sh
  训练网络:./examples/mnist/train_lenet.sh
  训练完可以看到损失与精度数值:

  可以看到最终训练精度是0.9914。

PS:(1).如果出现

                In file included from /usr/include/boost/python/detail/prefix.hpp:13:0,

                 from /usr/include/boost/python/args.hpp:8,

                 from /usr/include/boost/python.hpp:11,
                 from src/caffe/layer_factory.cpp:4:
/usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: 没有那个文件或目录
 # include <pyconfig.h>
                       ^
compilation terminated.
make: *** [.build_release/src/caffe/layer_factory.o] 错误 1

.ubuntu14+cuda8+cudnn5+anaconda2+caffe

           (2)如果出现

.build_release/tools/caffe

.build_release/tools/caffe: error while loading shared libraries: libhdf5_hl.so.10: cannot open shared object file: No such file or directory
make: *** [runtest] Error 127

.ubuntu14+cuda8+cudnn5+anaconda2+caffe