Ubuntu14.04 安装Caffe(仅CPU)

from :  http://blog.csdn.net/u011762313/article/details/47262549

目录:

前言:


GPU版本


正文:

安装依赖库(一):

<code class="hljs lasso has-numbering">$ sudo apt<span class="hljs-attribute">-get</span> install libprotobuf<span class="hljs-attribute">-dev</span> libleveldb<span class="hljs-attribute">-dev</span> libsnappy<span class="hljs-attribute">-dev</span> libopencv<span class="hljs-attribute">-dev</span> libhdf5<span class="hljs-attribute">-serial</span><span class="hljs-attribute">-dev</span> protobuf<span class="hljs-attribute">-compiler</span>
$ sudo apt<span class="hljs-attribute">-get</span> install <span class="hljs-subst">--</span>no<span class="hljs-attribute">-install</span><span class="hljs-attribute">-recommends</span> libboost<span class="hljs-attribute">-all</span><span class="hljs-attribute">-dev</span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li></ul>

安装BLAS:

<code class="hljs lasso has-numbering">$ sudo apt<span class="hljs-attribute">-get</span> install libatlas<span class="hljs-attribute">-base</span><span class="hljs-attribute">-dev</span></code><ul style="display: block;" class="pre-numbering"><li>1</li></ul>
  • 可以安装OpenBLAS 或 MKL,以提升CPU性能,但是要修改caffe中Makefile文件…

安装python

  • 我的Ubuntu14.04自带
  • 可使用pycaffe接口

安装matlab


安装opencv


安装依赖库(二):

<code class="hljs lasso has-numbering">$ sudo apt<span class="hljs-attribute">-get</span> install libgflags<span class="hljs-attribute">-dev</span> libgoogle<span class="hljs-attribute">-glog</span><span class="hljs-attribute">-dev</span> liblmdb<span class="hljs-attribute">-dev</span></code><ul style="display: block;" class="pre-numbering"><li>1</li></ul>

下载Caffe:

<code class="hljs ruby has-numbering"><span class="hljs-variable">$ </span>cd ~
<span class="hljs-variable">$ </span>git clone <span class="hljs-symbol">git:</span>/<span class="hljs-regexp">/github.com/</span><span class="hljs-constant">BVLC</span>/caffe.git</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li></ul>

如果安装的是opencv3.0:

a、修改Makefile,在

<code class="hljs tex has-numbering">LIBRARIES += glog gflags protobuf leveldb snappy <span class="hljs-command">\
</span>lmdb boost_system hdf5_hl hdf5 m <span class="hljs-command">\
</span>opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li></ul>

处加入后面的opencv_imgcodecs,因为opencv3.0.0把imread相关函数放到imgcodecs.lib中了(原来是imgproc.lib)

b、修改caffe/examples/cpp_classification/classification.cpp文件,加入:

<code class="hljs vala has-numbering"><span class="hljs-preprocessor">#include <opencv2/imgproc/types_c.h></span>
<span class="hljs-preprocessor">#include <opencv2/objdetect/objdetect_c.h></span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li></ul>

否则会出现”CV_BGR2GRAY”的错误


编译Caffe:

<code class="hljs smalltalk has-numbering"><span class="hljs-char">$ </span>cd ~/caffe
<span class="hljs-char">$ </span>cp <span class="hljs-class">Makefile</span>.config.example <span class="hljs-class">Makefile</span>.config
# 修改<span class="hljs-class">Makefile</span>.config文件:去掉<span class="hljs-class">CPU_ONLY</span>:= <span class="hljs-number">1</span>的注释
<span class="hljs-char">$ </span>make all
<span class="hljs-char">$ </span>make test
<span class="hljs-char">$ </span>make runtest</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul>

配置pycaffe:

a、安装依赖库:

<code class="hljs lasso has-numbering">$ sudo apt<span class="hljs-attribute">-get</span> install python<span class="hljs-attribute">-numpy</span> python<span class="hljs-attribute">-scipy</span> python<span class="hljs-attribute">-matplotlib</span> python<span class="hljs-attribute">-sklearn</span> python<span class="hljs-attribute">-skimage</span> python<span class="hljs-attribute">-h5py</span> python<span class="hljs-attribute">-protobuf</span> python<span class="hljs-attribute">-leveldb</span> python<span class="hljs-attribute">-networkx</span> python<span class="hljs-attribute">-nose</span> python<span class="hljs-attribute">-pandas</span> python<span class="hljs-attribute">-gflags</span> Cython ipython
$ sudo apt<span class="hljs-attribute">-get</span> install protobuf<span class="hljs-attribute">-c</span><span class="hljs-attribute">-compiler</span> protobuf<span class="hljs-attribute">-compiler</span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li></ul>

b、编译:

<code class="hljs smalltalk has-numbering"><span class="hljs-char">$ </span>cd ~/caffe
<span class="hljs-char">$ </span>make pycaffe</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li></ul>

c、添加~/caffe/python到$PYTHONPATH:

<code class="hljs bash has-numbering">$ <span class="hljs-built_in">sudo</span> gedit /etc/profile
<span class="hljs-comment"># 末尾添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH</span>
<span class="hljs-comment"># 用完整路径,不要用~</span>
$ <span class="hljs-built_in">source</span> /etc/profile <span class="hljs-comment"># 使之生效</span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li></ul>

d、测试是否可以引用:

<code class="hljs python has-numbering">$ python
Python <span class="hljs-number">2.7</span><span class="hljs-number">.6</span> (default, Jun <span class="hljs-number">22</span> <span class="hljs-number">2015</span>, <span class="hljs-number">17</span>:<span class="hljs-number">58</span>:<span class="hljs-number">13</span>) 
[GCC <span class="hljs-number">4.8</span><span class="hljs-number">.2</span>] on linux2
Type <span class="hljs-string">"help"</span>, <span class="hljs-string">"copyright"</span>, <span class="hljs-string">"credits"</span> <span class="hljs-keyword">or</span> <span class="hljs-string">"license"</span> <span class="hljs-keyword">for</span> more information.
<span class="hljs-prompt">>>> </span><span class="hljs-keyword">import</span> caffe
<span class="hljs-prompt">>>> </span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul>

配置matcaffe:

a、gcc降级(Ubuntu14.04自带的gcc版本是4.8,MATLAB2014a支持的最高版本为4.7x。因此,需要安装gcc4.7,并给gcc降级):
详见Ubuntu中update-alternatives命令(版本切换)

<code class="hljs brainfuck has-numbering"><span class="hljs-comment">sudo</span> <span class="hljs-comment">apt</span><span class="hljs-literal">-</span><span class="hljs-comment">get</span> <span class="hljs-comment">install</span> <span class="hljs-comment">gcc</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">7</span> <span class="hljs-comment">g</span><span class="hljs-literal">+</span><span class="hljs-literal">+</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">7</span> <span class="hljs-comment">g</span><span class="hljs-literal">+</span><span class="hljs-literal">+</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">7</span><span class="hljs-literal">-</span><span class="hljs-comment">multilib</span> <span class="hljs-comment">gcc</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">7</span><span class="hljs-literal">-</span><span class="hljs-comment">multilib</span>
<span class="hljs-comment">sudo</span> <span class="hljs-comment">update</span><span class="hljs-literal">-</span><span class="hljs-comment">alternatives</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">install</span> <span class="hljs-comment">/usr/bin/g</span><span class="hljs-literal">+</span><span class="hljs-literal">+</span> <span class="hljs-comment">g</span><span class="hljs-literal">+</span><span class="hljs-literal">+</span> <span class="hljs-comment">/usr/bin/g</span><span class="hljs-literal">+</span><span class="hljs-literal">+</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">7</span> <span class="hljs-comment">100</span> 
<span class="hljs-comment">sudo</span> <span class="hljs-comment">update</span><span class="hljs-literal">-</span><span class="hljs-comment">alternatives</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">install</span> <span class="hljs-comment">/usr/bin/g</span><span class="hljs-literal">+</span><span class="hljs-literal">+</span> <span class="hljs-comment">g</span><span class="hljs-literal">+</span><span class="hljs-literal">+</span> <span class="hljs-comment">/usr/bin/g</span><span class="hljs-literal">+</span><span class="hljs-literal">+</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">8</span> <span class="hljs-comment">50</span> 
<span class="hljs-comment">sudo</span> <span class="hljs-comment">update</span><span class="hljs-literal">-</span><span class="hljs-comment">alternatives</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">install</span> <span class="hljs-comment">/usr/bin/gcc</span> <span class="hljs-comment">gcc</span> <span class="hljs-comment">/usr/bin/gcc</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">7</span> <span class="hljs-comment">100</span> 
<span class="hljs-comment">sudo</span> <span class="hljs-comment">update</span><span class="hljs-literal">-</span><span class="hljs-comment">alternatives</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">install</span> <span class="hljs-comment">/usr/bin/gcc</span> <span class="hljs-comment">gcc</span> <span class="hljs-comment">/usr/bin/gcc</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">8</span> <span class="hljs-comment">50</span>
<span class="hljs-comment">sudo</span> <span class="hljs-comment">update</span><span class="hljs-literal">-</span><span class="hljs-comment">alternatives</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">install</span> <span class="hljs-comment">/usr/bin/cpp</span> <span class="hljs-comment">cpp</span><span class="hljs-literal">-</span><span class="hljs-comment">bin</span> <span class="hljs-comment">/usr/bin/cpp</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">7</span> <span class="hljs-comment">100</span>
<span class="hljs-comment">sudo</span> <span class="hljs-comment">update</span><span class="hljs-literal">-</span><span class="hljs-comment">alternatives</span> <span class="hljs-literal">-</span><span class="hljs-literal">-</span><span class="hljs-comment">install</span> <span class="hljs-comment">/usr/bin/cpp</span> <span class="hljs-comment">cpp</span><span class="hljs-literal">-</span><span class="hljs-comment">bin</span> <span class="hljs-comment">/usr/bin/cpp</span><span class="hljs-literal">-</span><span class="hljs-comment">4</span><span class="hljs-string">.</span><span class="hljs-comment">8</span> <span class="hljs-comment">50</span>

<span class="hljs-comment">#</span> <span class="hljs-comment">验证gcc默认版本:</span>
<span class="hljs-comment">$</span> <span class="hljs-comment">gcc</span> <span class="hljs-literal">-</span><span class="hljs-comment">v</span> </code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li></ul>

b、编译:

<code class="hljs bash has-numbering">$ <span class="hljs-built_in">cd</span> ~/caffe
<span class="hljs-comment"># 修改Makefile.config文件,MATLAB_DIR := /usr/local/MATLAB/R2014a</span>
$ make matcaffe</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li></ul>

c、添加工作空间:

<code class="hljs ruby has-numbering"><span class="hljs-variable">$ </span>sudo matlab -nodesktop -nosplash
>>> addpath ~<span class="hljs-regexp">/caffe/matlab</span>
>>> savepath</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li></ul>

即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值