深度学习框架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

深度学习框架Caffe的编译安装的更多相关文章

  1. 深度学习框架-caffe安装-环境[Mac OSX 10.12]

    深度学习框架-caffe安装 [Mac OSX 10.12] [参考资源] 1.英文原文:(使用GPU) [http://hoondy.com/2015/04/03/how-to-install-ca ...

  2. 深度学习框架-caffe安装-Mac OSX 10.12

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...

  3. 贾扬清分享_深度学习框架caffe

    Caffe是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的 贾扬清,目前在Google工作.本文是根据机器学习研究会组织的online分享的交流内容,简单的整理了一下. 目录 ...

  4. 深度学习框架caffe/CNTK/Tensorflow/Theano/Torch的对比

    在单GPU下,所有这些工具集都调用cuDNN,因此只要外层的计算或者内存分配差异不大其性能表现都差不多. Caffe: 1)主流工业级深度学习工具,具有出色的卷积神经网络实现.在计算机视觉领域Caff ...

  5. 深度学习框架caffe在ubuntu下的环境搭建

    深度学习实验室服务器系统配置手册 目录:     一,显卡安装     二,U盘启动盘制作     三,系统安装     四,系统的基本配置     五,安装Nvidia驱动     六,安装cuda ...

  6. DMLC深度机器学习框架MXNet的编译安装

    这篇文章将介绍MXNet的编译安装. MXNet的编译安装分为两步: 首先,从C++源码编译共享库(libmxnet.so for linux,libmxnet.dylib for osx,libmx ...

  7. 深度学习框架caffe在macOS Heigh Sierra上安装过程实录

    第一步.安装依赖库 brew install -vd snappy leveldb gflags glog szip lmdb brew tap homebrew/science brew insta ...

  8. 深度学习框架Caffe —— Deep learning in Practice

    因工作交接需要, 要将caffe使用方法及整体结构描述清楚. 鉴于也有同学问过我相关内容, 决定在本文中写个简单的tutorial, 方便大家参考. 本文简单的讲几个事情: Caffe能做什么? 为什 ...

  9. 【深度学习框架-caffe】caffe中使用到的layer

    https://www.jianshu.com/p/f6f49f6bcea6 https://github.com/BVLC/caffe/tree/master/include/caffe/layer ...

随机推荐

  1. 修改某个UITextField的键盘的返回键类型以及监听键盘的高度变化,取到键盘动画退出弹出的时间,一起随着键盘顶出来或者压下去,

    1.修改某个UITextField的键盘的返回键类型: [_bottomTextView setReturnKeyType:UIReturnKeyDone]; 1.1.textFied点击return ...

  2. 关于hasnextLine()方法的一些理解

    以前对于hasnextline的理解就是 :判断是否有下一个值 今天发现了个特例,它竟然是个阻塞式的方法 看下面一个案例 这是服务器 package Service; import java.io.I ...

  3. 建立TCP连接的三次握手

    请求端(通常称为客户)发送一个 SYN 报文段( SYN 为 1 )指明客户打算连接的服务器的端口,以及初始顺序号( ISN ).服务器发回包含服务器的初始顺序号( ISN )的 SYN 报文段( S ...

  4. 1.4 测试各阶段(单元、集成、系统 、Alpha、Beta、验收)

    单元测试:单元测试是对软件基本组成单元(软件设计的最小单位)进行正确性检验的测试工作,如函数.过程(function,procedure)或一个类的方法(method).单元测试是一个方法层面上的测试 ...

  5. div.2/D. As Fast As Possible<数学题,二分>

    题目连接 题意: n个学生出去玩,要前进一段距离,租了一辆可以载k个人的车,问到达到目的地的最短时间. cin: n,l,v1,v2,k. £:所有人一起到达终点的时候时间最短. £:所有人走路和坐车 ...

  6. linux通用邻居基础架构

    1.为每一个协议提供一个缓存来存放L3到L2的转换结果. 2.提供在缓存中添加.删除.改变和查找一个特定映射项的函数.查找函数必须要快,因为它会影响整个系统的性能. 3.为每一个协议缓存的数据项提供一 ...

  7. 初识Jmeter(一)

    倒霉熊的推荐: 文本学习网址:http://m.open-open.com/m/doc/category/105 视频学习网址: 软件学习网:http://www.ask3.cn/index.html ...

  8. useradd adduer 的区别

    区别 1). 使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统She ...

  9. android 垂直 SeekBar 源代码(VerticalSeekBar)[转]

    主要是继承 AbsSeekBar 然后修改下面这些方法 onProgressRefresh() //当进度条数据更新的时候,例如我们拖动滑动条的时候,这个方法被调用 setThumbPos() //这 ...

  10. elasticsearch高级配置之(一)----分片分布规则设置

    cluster.routing.allocation.allow_rebalance 设置根据集群中机器的状态来重新分配分片,可以设置为always, indices_primaries_active ...