这个也是困扰我很久的问题,之前用 http://www.cnblogs.com/platero/p/3993877.html 的安装方法,装了五六七八九十次,总是出问题。

后来找到了一种新的方法,一个晚上加半个上午,装了ubuntu系统(14.04) + NVIDIA 驱动 + CUDA + CAFFE 全部搞定。还跑了mnist的那个数据库,爽爽的一点问题也没有。具体步骤:

1.安装ubuntu,建议安装英文语言版(我自己安装的是14.04英文语言的)。

2.安装NVIDIA 驱动:建议参考博客 http://blog.csdn.net/xizero00/article/details/43227019 (这是我同学的博客,我用他的方法装,好到爆炸)。

建议先安装依赖项: $ sudo apt-get install build-essential

   1) 首先验证你是否有nvidia的显卡(http://developer.nvidia.com/cuda-gpus这个网站查看你是否有支持gpu的显卡): $ lspci | grep -i nvidia  

   2) 查看你的linux发行版本(主要是看是64位还是32位的):$ uname -m && cat /etc/*release

   3) 查看GCC版本: $ gcc --version  

   4) 首先下载nvidia cuda的仓库安装包(我的是ubuntu 14.04 64位,所以下载的是ubuntu14.04的安装包,如果你是32位的可以参看具体的地址,具体的地址是https://developer.nvidia.com/cuda-downloads)

   $: wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_6***.deb (具体看网址多少) 

   5) 下载完成之后可以使用如下命令安装它,注意文件名修改为cuda-repo-ubuntu1404_6.5-14_amd64.deb, (建议下载local版(接近2G)的,在windows下用迅雷下载,拷贝到ubuntu桌面。net(几k)和local版本安装步骤一模一样,如下:)

   $ sudo stop lightdm

   $ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb  

   $ sudo start lightdm

   6) 安装好仓库之后,就可以更新你的本地仓库。

   $ sudo apt-get update  

   7) 最后开始安装cuda以及显卡驱动(安装cuda的同时就会把显卡驱动也全部安装好,这个真的很方便。但是下载的时间有点长。)

   sudo apt-get install cuda  

   **建议安装xubuntu, 防止桌面空白现象 $ sudo apt-get install xubuntu-desktop

 

需要注意的是,我这里提供的安装方法跟网络上各种安装方法都不一样,他们的方法往往很复杂

主要是因为:(1)有些教程是手工安装显卡的驱动程序,手工屏蔽系统的默认开源的驱动

                 (2)安装cuda也是手工进行

使用这个方法的时候千万要注意几个问题:

                 (1)cuda6.5已经不支持老旧的显卡了所以sm11 等等都必须删除。可以参考我的另一个文章,关于编译opencv3.0的

                 (2)ubuntu14.04是64位的,并且不要一开始就更新系统补丁什么的,因为系统更新过之后,再安装显卡驱动就会无法进入图形界面,我查看了相关的日志发现是卡在了dbus那边。所以,我建议一安装好ubuntu 14.04就不要更新系统补丁。

 

   8) 安装完之后你需要设置环境变量, 在/etc/profile里面加入

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

      export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH  

      然后在终端输入$   source /etc/profile

   9) 添加lib库路径:

     在 /etc/ld.so.conf.d/加入文件 cuda.conf, 内容如下

 /usr/local/cuda-6.5/lib64

     执行下列命令使之立刻生效

 sudo ldconfig

我同学博客说接下来选择是否安装nvidia的sample,我感觉前一个步骤已经一起安装的,至少我安装的时候是这样的,所以这一步是不需要的,没有的话另行安装。

 接下来做一些验证工作:

1. 查看显卡的驱动版本

   $ cat /proc/driver/nvidia/version  

2. 查看nvcc编译器的版本

   $ nvcc -V i  

3. 编译cuda的示例代码: $ cd ~/NVIDIA_CUDA-6.5_Samples, $ sudo make

4. 全部编译完成后, 进入 samples/bin/x86_64/linux/release, sudo下运行deviceQuery,$ sudo ./deviceQuery

安装其他工具和库

1. 安装ATLAS(由于intel mkl收费,openblas安装复杂,atlas最好安装了,而且是caffe默认的), 一行代码搞定:$ sudo apt-get install libatlas-base-dev

2. 安装Opencv 2.4.9: 这个尽量不要手动安装, Github上有人已经写好了完整的安装脚本:https://github.com/jayrambhia/Install-OpenCV 下载该脚本,进入Ubuntu/2.4 目录, 给所有shell脚本加上可执行权限。

   1) $ chmod +x *.sh,  $ sudo ./opencv2_4_9.sh. 接下来等着自动安装。

我个人人文安装opencv最好的办法是,在ubuntu软件中心输入opencv,然后把所有显示的项都点击安装(没有软件中心可以$sudo apt-get install software-center安装一个,该方法也可验证opencv是否装好)。

另外,用该方法的时候会出现错误/home/yy/opencv-2.4.9/build/modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda//cuda_compile_generated_matrix_operations.cu.o等一堆错误。

该错误在终端输入:“cmake -D CMAKE_BUILD_TYPE=bulid -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..”,即可解决!

如出现../modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed错误,解决办法在此:

去网站http://code.opencv.org/issues/3814  下载 NCVPixelOperations.hpp 替换掉opencv2.4.9该路径下的文件, 重新编译。 在CSDN下载,以前的下载路径好像下载不了。

最后,sudo make install 即可,可以python 试一下能否import 从从cv2。

3.  安装其他依赖项: $  sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler (建议一个一个安装)

4. 安装Python:下载CAFFE,转到caffe目录下的Python目录:$ sudo apt-get install python-dev python-pip, $ for req in $(cat requirements.txt); do sudo pip install $req; done

安装完python后在/etc/profile里面加上路径,export PYTHONPATH = ...caffe_root/python/:$python:$PYTHONPATH

(后面在运行python文件的时候,会用到protobuf,安装完probobuf也要在/etc/profile/中加入路径/usr/include/google/protobuf:$PATH)

现在已经大功告成了:测试即可

   1) cd 进入caffe根目录, 首先复制一份Makefile.config

   2) $ cp Makefile.config.example Makefile.config

   3) $ make all -j8

        $ make test

        $ make runtest

最后可以,安装MATLAB...(此处省略一万字...)

 

5. 如果想用python接口,可接着如下操作。

    1) Makefile.config修改: WITH_PYTHON_LAYER := 1 #取消注释

    2) 编译:

    $ make clean

    $ make pycaffe -j32

    $ make test -j32

 3) 使Caffe的python接口永久生效

    $ vim /etc/profile profile 最后添加: export PYTHONPATH=/root/$CAFFE_ROOT/python:$PYTHONPATH

    $ source /etc/profile

注意:

 

有一些python库没有安装,在import caffe测试时会出错,常见的库缺失错误:

 

ImportError: No module named skimage.io

 

ImportError:  No module named scipy

 

ImportError:  No module named google.protobuf.internal

 

yum install python-matplotlib.x86_64
pip install -U scikit-image
pip install scipy
easy_install protobuf

 

安装完成上述caffe依赖的python库后,可能需要重新执行一遍第4,5步操作。

 

6. 如果想使用MATLAB接口,在Makefile.config中修改文件,写入以下路径:

MATLAB_DIR:=/usr/local/MATLAB/R2014a

然后终端下编译:$ sudo make matcaffe

然后测试:$ sudo make mattest

如果在make mattest 出现以下错误:/usr/../libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by …) 可采用以下解决方案:

sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /usr/local/MATLAB/R2014a/bin/glnxa64/libstdc++.so.6

成功没有报错即可。