zoukankan      html  css  js  c++  java
  • 深度学习框架Caffe的编译安装

      深度学习框架caffe特点,富有表达性、快速、模块化。下面介绍caffe如何在Ubuntu上编译安装。

    1. 前提条件

    安装依赖的软件包:

    • CUDA 用来使用GPU模式计算.
      • 建议使用 7.0 以上最新的版本
    • BLAS via ATLAS, MKL, or OpenBLAS.
    • Boost >= 1.55
    • protobufgloggflagshdf5

    可选依赖软件包:

    • OpenCV >= 2.4 including 3.0
    • IO libraries: lmdbleveldb (note: leveldb requires snappy)
    • cuDNN for GPU acceleration (v3)

    编程开发接口:

      Pycaffe 和 Matcaffe,各自有各自的要求:

    • For Python Caffe: Python 2.7 or Python 3.3+numpy (>= 1.7), boost-provided boost.python
    • For MATLAB Caffe: MATLAB with the mex compiler

     编译版本:

      cuDNN Caffe:支持CUDA和cuDNN快速操作

      CPU-only Caffe:无CUDA支持,只使用CPU。可用于云和集群部署。

    2. 编译

    安装依赖包(boost 和 protobufgloggflagshdf5):

    sudo apt-get install libboost-all-dev libprotobuf-dev protobuf-compiler libhdf5-serial-dev libgflags-dev libgoogle-glog-dev
    

    安装依赖包(atlas):

    sudo apt-get install libatlas-base-dev
    

    安装依赖包(CUDA):

      下载网址: CUDA

      CUDA有几种安装方式,由于文件比较大,国内有源,所以这里选择从网络安装。

      下载相应的安装包,如我的是 cuda-repo-ubuntu1504_7.5-18_amd64.deb 。然后执行如下命令:

    sudo dpkg -i cuda-repo-ubuntu1504_7.5-18_amd64.deb
    sudo apt-get update
    sudo apt-get install cuda
    

      设置LD_LIBRARY_PATH,最简单的方式在你的 /etc/profile 或 ~/.bashrc 文件中添加如下语句:

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

      或者执行命令 sudo vi /etc/ld.so.conf.d/cuda.conf,在文件中添加如下内容:

         /usr/local/cuda/lib64

      然后再执行命令:

    sudo ldconfig
    

    安装可选包(IO libraries: lmdbleveldb (note: leveldb requires snappy) 和 opencv):

    sudo apt-get install libleveldb-dev libsnappy-dev liblmdb-dev libopencv-dev 
    

    安装CUDNN:

      下载网址:CUDNN (需要注册申请,批准通过,才能下载)

      解压缩下载文件,将 include 和 lib64 拷贝放置在 /usr/local/cuda 目录下即可。

       执行如下命令修改链接文件:

    cd /usr/local/cuda/lib64
    rm -rf libcudnn.so libcudnn.so.4
    ln -s libcudnn.so.4.0.4 libcudnn.so.4
    ln -s libcudnn.so.4 libcudnn.so
    

    获取源代码:

    git clone git://github.com/BVLC/caffe.git
    

    添加修改编译配置:

    cp Makefile.config.example Makefile.config
    vi Makefile.config

      a. 启用CUDNN,去掉"#"

        USE_CUDNN := 1

      b. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)

        INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include

        LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

      c.启用opencv3,如果你使用的 opencv >= 3.0.0

        OPENCV_VERSION := 3

        否则编译时候会报错 “ 对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用

     

    执行如下命令编译: 

    make all -j4
    make test -j4
    make runtest -j4
    • 要编译使用cuDNN加速,在Makefile.config文件中,设置 USE_CUDNN := 1
    • 要编译 CPU-only Caffe版本,在Makefile.config文件中,设置  CPU_ONLY := 1 

      要编译Python 和 MATLAB 封装包,在分别各自使用 make pycaffe 和 make matcaffe 命令编译前,确定在 Makefile.config 文件中,设置好 MATLAB 和 Python的路径。 

       要安装使用pycaffe,必须安装相应的python依赖包,可进入python,并执行如下命令安装:

    for req in $(cat requirements.txt); do pip install $req; done
    

       注意: 在安装python包时,可能会失败,是由于缺少相应的cpp版本,比如我的机器安装pyyaml失败,于是执行命令安装libyaml

    sudo apt-get install libyaml-cpp-dev
    

       执行如下命令编译 pycaffe:

    make pycaffe -j4
    

      在安装完成之后,如果想要导入caffePython模块,则添加模块路径到你的环境变量 $PYTHONPATH 中。比如在你的~/.bashrc中添加如下一行:

        export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

    3. 测试安装

      下面通过运行mnist来验证caffe已正常安装:

    1. 数据预处理

    data/mnist/get_mnist.sh
    

    2. 重建lmdb文件。Caffe支持多种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧。

    examples/mnist/create_mnist.sh
     

    生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集

    3. 训练mnist

    examples/mnist/train_lenet.sh
    
  • 相关阅读:
    Java_jdbc 基础笔记之六 数据库连接 (PreparedStatement)
    Java_jdbc 基础笔记之五 数据库连接 (ResultSet)
    如何在Windows Server 2008服务器中把Tomcat启动程序添加到服务中
    WebService(axis2),整合springmvc
    shiro学习
    mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
    mysql几种关联的区别
    wzyxidian Scanner 与 Readable 的read()方法
    LINQ系列:LINQ to SQL Take/Skip
    LINQ系列:LINQ to SQL Concat/Union
  • 原文地址:https://www.cnblogs.com/simplelovecs/p/5146332.html
Copyright © 2011-2022 走看看