ubuntu12.04+cuda6.0+caffe(新版)的安装

参照两位的博客http://caffe.berkeleyvision.org/    官网http://www.mintos.org/config/ubuntu-nvidia-prime.html(对于ubuntu14.04的话很重要)  前前后后装了有20+遍系统,今天终于把caffe搞定了。推荐ubuntu12.04+cuda(5.0,5.5或6.0的版本)+mkl+opencv+caffe显卡驱动可以不装,cuda的.run文件只安装toolkit和sample即可,程序以后只用cpu运行,且只能运行不含GPU的sample,配置文件会有一个CPU与GPU的选择http://developer.nvidia.com/cuda-gpus这个网站查看你是否有支持gpu的显卡 前提执行下面的操作,然后验证硬件支持GPU CUDA,只要型号存在于https://developer.nvidia.com/cuda-gpus,就没问题了 lspci | grep -i nvidia
ubnutu12.04下显示:
NVIDIA Corporation GF119M [GeForce 610M]
 gcc --version
没有的话就先安装吧,这个是必须的用来编译CUDA Toolkit,不然安装显卡驱动的时候会出现问题,不过Ubuntu 是默认有的,ubuntu系统推荐安装英文的。

(如果是新装的ubuntu,记得update后换源)
1,安装cuda
下载官方cuda-toolkit,https://developer.nvidia.com/cuda-downloads,
将下载的.run安装文件放到home/yjy/下,yjy是我的用户名。
Mouveau跟Nvidia模块冲突,所以要把Nouveau给禁用了
 sudo gedit /etc/modprobe.d/blacklist.conf
在blacklist.conf中添加黑名单内容:
blacklist lbm-nouveau  
blacklist nvidia-173  
blacklist nvidia-96  
blacklist nvidia-current  
blacklist nvidia-173-updates  
blacklist nvidia-96-updates  
alias nvidia nvidia_current_updates  
alias nouveau off  
alias lbm-nouveau off

之后进入文本模式TTY,CTRL+ALT+FN+F1,(卸载已经安装过的驱动: sudo apt-get remove --purge nvidia*,重装的系统就不要执行这一步了,这个操作有可能会导致黑屏,进不了桌面系统。couldnot write bytes:Broken pipe有可能也是它引起的)
然后关闭Lightdm
    sudo stop lightdm 

然后进入yjy文件夹下看一下安装文件的权限

yjy@yjy-ThinkPad:~$ ls
若显示的.run文件名为白色,则给其赋执行权限

    sudo chmod +x cuda_6.0.37_linux_64.run
执行.run文件
    sudo ./cuda_6.0.37_linux_64.run
安装完成后,启动lightdm
    sudo start lightdm有可能只有桌面,没有左侧的菜单栏,这时再进文本模式重启即可 sudo reboot安装过程中会提示Missing recommend library,则重新启动后必须要安装sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
cuda验证cd /home/yjy/NVIDIA_CUDA-6.0_Samples
 make运行编译好的文件,看看设备的基本信息 cd /bin/x86_64/linux/release
 ./deviceQuery
 2,MKL安装

    解压缩后,若没有权限的话,加执行权限(方法同cuda相同): 
    开始安装: 
    sudo ./install_GUI.sh 

3,:MKL与CUDA的环境设置



    新建intel_mkl.conf,然后里面写上:
        /opt/intel/lib/intel64  
        /opt/intel/mkl/lib/intel64  
    新建cuda.conf,里面内容是:
        /usr/local/cuda/lib64  
        /lib  

    sudo ldconfig -v

4:OPENCV安装

    首先先下载大神脚本https://github.com/jayrambhia/Install-OpenCV,继续放在HOME中。
    sudo ./dependencies.sh  
    由于习惯性使用2.4.8,所以进入2.4文件夹,然后执行对应的安装文件,然后就安装完成了。

        sudo ./opencv2_4_8.sh方案是拷贝一个已经安装好的把OpenCV-2.4.8.zip(我的是2.4.8)先放在你桌面上,然后执行下面操作  放到/home/yjy/Install-OpenCV-master/Ubuntu/2.4/OpenCV/ 中,sudo mv /home/yjy/Desktop/OpenCV-2.4.8.zip  /home/yjy/Install-OpenCV-master/Ubuntu/2.4/OpenCV/在2.4文件夹下新建aa.sh文件,首行写入cd OpenCV在opencv2_4_8.sh 中找到echo "Installing OpenCV 2.4.8",从这一行到最后的全部内容拷贝到aa.sh中。接下来运行aa.sh即可完成安装。

sudo ./aa.sh 5:安装Google Logging Library (glog)

    下载地址是https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz,然后将解压后的glog-0.3.3放于主目录文件夹:
        ./configure  
        sudo make  
        sudo make install  
   安装其他依赖项:一个都不能少

    
  1. sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev  

  

6、安装Caffe并测试,https://github.com/BVLC/caffe
 切换到Caffe的下载文件夹,然后执行:
    cp Makefile.config.example Makefile.config修改新生成的Makefile.config文件,修改“BLAS := mkl”,修改Makefile文件,将BLAS ?= atlas修改为BLAS ?= mkl,不然后面编译会报错(如下面红色字体部分)。     make all
    make test    make runtest/usr/bin/g++ src/caffe/solver.cpp -pthread -fPIC -DNDEBUG -O2 -I/usr/local/include/python2.7 -I/usr/local/lib/python2.7/dist-packages/numpy/core/include -I/usr/local/include -Ibuild/src -I./src -I./include -I/usr/local/cuda/include -c -o build/src/caffe/solver.o
In file included from ./include/caffe/util/math_functions.hpp:12:0,
                 from src/caffe/solver.cpp:13:
./include/caffe/util/mkl_alternate.hpp:13:19: fatal error: cblas.h: No such file or directory
compilation terminated.出错例子 
7、使用MNIST数据集进行测试
Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/yjye/caffe-master。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
  数据预处理
具体操作如下:
  cd data/mnist
  ./get_mnist.sh

  重建LDB文件,就是处理二进制数据集为Caffe识别的数据集,以后所有的数据,包括jpg文件都要处理成这个格式  cd examples/mnist  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
  ./create_mnist.sh将mnist数据集转化为leveldb文件,生成mnist-train-leveldb/ 和 mnist-test-leveldb/文件夹../../build/examples/mnist/convert_mnist_data.bin: error while loading shared libraries: libglog.so.0: cannot open shared object file: No such file or directory

  1. sudo su  
  2. cat /etc/ld.so.conf  
  3. echo "/usr/local/lib" >> /etc/ld.so.conf  
  4. ldconfig  


 
  训练mnist
  cd examples/mnist  ./train_lenet.sh 在运行最后一步时出错yjy@ThinkPad:~/caffe-master/examples/mnist$ ./train_lenet.sh
../../build/tools/train_net.bin: error while loading shared libraries: libmkl_rt.so: cannot open shared object file: No such file or directory。后来发现此文件在/opt/intel/mkl/lib/intel64/ 中,要将此路径加入共享文件库# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/opt/intel/mkl/lib/intel64/" >> /etc/ld.so.conf
# ldconfig即可。最终结果附图  新版的caffe要增加一些东西 
  1. sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev  

ubuntu12.04下增加  ubuntu14.04下增加
    1. sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler  

相关内容推荐