Ubuntu14.04 安装Caffe(仅CPU)
来源:互联网 发布:获取js对象的方法 编辑:程序博客网 时间:2024/05/22 11:15
from : http://blog.csdn.net/u011762313/article/details/47262549
目录:
- 前言
- GPU版本
- 正文
- 安装依赖库一
- 安装BLAS
- 安装python
- 安装matlab
- 安装opencv
- 安装依赖库二
- 下载Caffe
- 如果安装的是opencv30
- 编译Caffe
- 配置pycaffe
- 配置matcaffe
前言:
- 按照Caffe官网安装教程安装Caffe时,要装Cuda,按照Cuda官网安装教程,
命令行输入:$ lspci | grep -i nvidia
,发现没有nvidia显卡,所以只能暂时放弃Gpu,改用Cpu了。
GPU版本
- 详见:Ubuntu14.04安装Caffe(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
- 详见:Ubuntu14.04安装Matlab2014a
- 如不使用matcaffe接口,可以不装
安装opencv
- 详见:Ubuntu14.04安装OpenCV3.0
- 注:opencv必须安装,且版本为>=2.4或3.0
安装依赖库(二):
<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">$ pythonPython <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 linux2Type <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
- Ubuntu14.04 安装Caffe(仅CPU)
- Ubuntu14.04 安装Caffe(仅CPU)
- Ubuntu14.04 安装Caffe(仅CPU)
- Ubuntu14.04 安装Caffe(仅CPU)
- ubuntu14.04下安装caffe 仅cpu python接口
- Ubuntu14.04下配置caffe(仅使用CPU)
- Ubuntu16.04安装caffe(仅cpu)
- Ubuntu14.04(32位)下Caffe(仅CPU模式)编译
- ubuntu16.04安装caffe教程(仅cpu)
- Ubuntu16.04-x64安装caffe(仅CPU)并测试
- Ubuntu14.04配置caffe,及mnist数据集训练与测试(仅在CPU下)
- ubuntu14.04 安装caffe步骤 CPU版本
- 虚拟机Ubuntu14.04+caffe+CPU安装教程
- Ubuntu14.04安装caffe(cpu版)
- 【Caffe安装】Ubuntu14.04上Caffe配置安装(Only CPU)
- ubuntu14+cpu caffe 安装
- ubuntu14.04 + caffe + python2.7 + CPU安装指南
- ubuntu14.04安装CPU版caffe以及py-faster-rcnn
- jsp内置对象request中getParameter方法与get/setAttribute方法的区别
- crontab 定时任务
- Js 函数eval() 用法记录
- silktest 2008 下载及破解方法
- HDU 2546 饭卡(01背包)
- Ubuntu14.04 安装Caffe(仅CPU)
- 高端内存——永久映射区(permanet kernel mappings)
- Servlet激活器和缺省Servlet
- Android:ToolBar使用
- 我的h5最佳实践
- 树莓派for Mac 启动
- java 从jar包中读取资源文件
- WinInet, WinHttp, Winsock, ws2_32的区别和联系
- Android--Activity生命周期