这个也是困扰我很久的问题,之前用 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
成功没有报错即可。