zoukankan      html  css  js  c++  java
  • Caffe + Ubuntu 14.04 64bit + CUDA6.5 + 无GPU 配置

    官网:

    http://caffe.berkeleyvision.org/installation.html#compilation

    参考网站: 

    http://www.cnblogs.com/dupuleng/articles/4213834.html

    http://www.cnblogs.com/empty16/p/4793404.html

    -------------------------------------------------------------------------------------------------------------------------------------

    一、安装build-essentials

      安装开发所需要的一些基本包

    1 sudo apt-get install build-essential

    二、CUDA安装

    这一步包括三个部分: 

    1. nvidia驱动
    2. cuda-toolkit
    3. cuda-samples

      在CPU模式下仅需要安装cuda-toolkit,接下来介绍如何安装cuda-toolkit

    2.1 下载CUDA6.5

          下载方式:windows下载(http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run)通过ssh传到Ubuntu

          或者直接在Ubuntu中输入: 

    1 wget http://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run

          通过下列命令增加.run文件的执行权限:

    1 chmod +x *.run

          然后解压下载到的文件:

    ./cuda_6.5.14_linux_64.run  --extract=extract_path  (说明:需要将extract_path改为将文件解压到的地点)

    解压下载得到的.run文件,得到三个文件,我们只安装第一个,即cuda-toolkit包

      • CUDA安装包: cuda-linux64-rel-6.5.14-18749181.run
      • NVIDIA驱动: NVIDIA-Linux-x86_64-340.29.run
      • SAMPLE包: cuda-samples-linux-6.5.14-18745345.run

    2.2 安装cuda

      安装CUDA需要在纯命令行下进行(非常重要),按 ctrl+alt+F1进入tty,登录后执行如下命令

    sudo service lightdm stop  
    
    或者
    
    sudo stop lightdm

    执行下列命令安装CUDA,按照提示一步步安装,其中会让你选择安装目录,接受协议等,为方便选择默认路径,直接回车即可。

    sudo ./cuda-linux64-rel-6.5.14-18749181.run

    2.3 添加环境变量

    安装完成后在/etc/profile中添加环境变量,在文件最后添加

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

        保存后,执行下列命令,使环境变量立即生效

    source /etc/profile

       2.4 添加lib库路径 

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

    /usr/local/cuda-6.5/lib64

        执行下列命令立刻生效

    sudo ldconfig

        注: 如果你没有使用默认路径,将上面的路径换成自己相应的路径即可

     2.5 退出命令行

    sudo service lightdm start
    
    或者
    
    sudo start lightdm

    三、安装BLAS

    BLAS有三个版本:ATLAS, MKL, OpenBLAS。MKL是收费的,也用student版本,不过需要使用你所在单位的邮箱来申请, 其它两种是免费的,这里使用OpenBlas。听说MKL效率上比其它两种好很多。。

         1. 下载地址:

    1 wget https://codeload.github.com/xianyi/OpenBLAS/tar.gz/v0.2.15

       2. 解压

    1 tar -zvxf OpenBLAS-0.2.15

        3.进入解压生成的文件进行编译安装:

         直接输入:make; 估计会报错: make[1]: *** [sgemm.o] Error 1

         那么输入:make TARGET=NEHALEM

         编译好后会提示类似于: make PREFIX=/your/path/lib install等;它的意思就是安装lib到相应的地址

         输入: make PREFIX=/usr/local/OpenBlas/

      4. 添加lib库路径: 在/etc/ld.so.conf.d/目录下增加文件OpenBlas.conf,内容如下

    /usr/local/OpenBlas/lib

        5. 执行下列命令立刻生效

    sudo ldconfig

     

    四、安装Opencv

    1.  从github上下载安装脚本:https://github.com/jayrambhia/Install-OpenCV
    2.  进行Ubuntu/2.4目录,对所有脚本增加可执行权限
    sudo chmod +x *.sh

    安装最新版本(当前为2.4.9),有人自己写了2.4.20版本的,有兴趣的可以去下:http://pan.baidu.com/s/1m3hQu

      3.    安装依赖项

    sudo ./dependencies.sh

      4.   安装opencv 2.4.9

    sudo sh ./opencv2_4_9.sh

      这块儿时间比较长,保证网络连接,需要联网下载安装包。

      注意:中途可能会报错:

    1
    opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization

      解决方案: 下载NCVPixelOperations.hpp ,替换掉Ubuntu/2.4/Opencv/opencv2.4.9/moduels/gpu/src/nvidia/core目录中的NCPixelOperations.hpp文件,重新执行安装命令

    sudo sh ./opencv2_4_9.sh

    五、安装其它依赖项

      Ubuntu14.04用户执行

    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

      其它版本参考官网说明

    六、安装Caffe所需要的Python 环境(未测试)

      选择一个适合你的IDE运行环境,作者用的是Spyder,因为它内置了 iPython 环境,Caffe有不少的程序是基于 iPython 环境完成的。安装方法很简单,直接在Ubuntu软件中心搜索“spyder”即可安装。

    七、安装Caffe所需要的matlab环境

    1. 下载:自己从网上找资源吧,百度云盘中有比较多的资源。注意:caffe只支持matlab12b以上的版本
    2. 安装具体流程参考:http://blog.csdn.net/aimatfuture/article/details/8058156

    八、编译Caffe

    cp Makefile.config.example Makefile.config
    •       根据自己环境修改相应内容

       1 取消 CPU_ONLY := 1前面的注释

       2. cuda 安装路径改为自己的路径 : CUDA_DIR := /usr/local/cuda-6.5

       3. 配置路径:实现caffe对python和matlab接口的支持  

    复制代码
    PYTHON_INCLUDE := /usr/include/python2.7 
    
    /usr/lib/python2.7/dist-packages/numpy/core/include
    
    PYTHON_LIB := /usr/local/lib
    
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
    
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
    
    MATLAB_DIR := /usr/local/MATLAB/R2014a
    复制代码

       4. BLAS := open (根据自己选择的版本,分别设为atlas, mkl, open

           BLAS_INCLUDE :=/usr/local/OpenBlas/include

           BLAS_LIB :=/usr/local/OpenBlas/lib

           Makefile中: BLAS ?= atlas 改成: BLAS ?= open

    • 编译caffe
    sudo make all -j2
    sudo make test 
    sudo make runtest

        

    在一这步可能会碰到问题:undefined refrence to ' cudaGetDevice '

        解决方法:

          1. 修改Makefile.config, 修改CUSTOM_CXX := g++-4.6

          2. 执行命令 sudo apt-get install gcc-4.6 g++-4.6 gcc-4.6-multilib g++-4.6-multilib
          3. 修改以下两个文件
            vi src/caffe/common.cpp
            vi tools/caffe.cpp
            使用google替代gflags

          4. 重新make

       如果在make的过程中提示:“error while loading shared libraries: xxx.so.x”,可能是cuda及OpenBLAS环境变量没有设置正确,检查相应步骤,可参考:http://blog.csdn.net/sahusoft/article/details/7388617

    九、编译matlab wrapper 

    make matcaffe

    十、编译python wrapper

    make pycaffe

     十一、使用MNIST数据集进行测试

      这部分可参考caffe官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html,非常详细。

      注:这一部分默认在caffe的目录下完成,不能去相应的子目录下执行脚本,因为脚本中的路径是相对于caffe目标的相对路径 。

    1. 获取数据: sudo sh data/mnist/get_mnist.sh
    2. 重建lmdb/ leveldb文件:sh examples/mnist/create_mnist.sh       ( caffe支持三种数据格式输入: images(.jpg,.png等),leveldb, lmdb)
    3. 切换到CPU模式: 在lenet_solver.prototxt中修改 solover_mode = CPU , 在最后一行
    4. 训练minist: sudo sh examples/mnist/train_lenet.sh

      没有错误的话,就可以看到一串串的输出信息啦。

          会进行10000次的迭代,耐心的等待吧!

    十二、测试训练的模型

      当所有数据都训练好之后,接下来就是如何将模型应用到实际数据了:

      ./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel -gpu=0 

      如果没有GPU则使用

      ./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel

    十二、在CPU模式下,所以不安装CuDnn

  • 相关阅读:
    java 运算
    java String
    java的数据类型
    Python: str() 和 repr() 的区别
    Linux命令:which
    Linux命令:locate
    Linux命令:ifconfig
    Linux命令:whereis
    Linux命令:rz 和 sz
    Linux命令:scp
  • 原文地址:https://www.cnblogs.com/zhonghuasong/p/5090414.html
Copyright © 2011-2022 走看看