ubantu16.04+CPU+caffe+opencv3+python2.7+运行MNIST+问题汇总

来源:互联网 发布:浮生六记读后感知乎 编辑:程序博客网 时间:2024/05/22 11:31

目录:

  • 前言
  • GPU版本
  • 正文
    • 安装依赖库一
    • 安装BLAS
    • 安装python
    • 安装opencv
    • 安装依赖库二
    • 下载Caffe
    • 如果安装的是opencv30
    • 编译Caffe
    • 配置pycaffe
    • 运行MNIST
    • 问题汇总

前言:

  • 按照Caffe官网安装教程安装Caffe时,要装Cuda,按照Cuda官网安装教程, 
    命令行输入:$ lspci | grep -i nvidia,发现没有nvidia显卡,所以只能暂时放弃Gpu,改用Cpu了。

GPU版本

  • 详见:Ubuntu16.04安装Caffe(GPU)

正文:

安装依赖库(一):

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler$ sudo apt-get install --no-install-recommends libboost-all-dev
  • 1
  • 2
  • 1
  • 2

安装BLAS:

$ sudo apt-get install libatlas-base-dev
  • 1
  • 1
  • 可以安装OpenBLAS 或 MKL,以提升CPU性能,但是要修改caffe中Makefile文件…

安装python

  • 我的Ubuntu16.04自带,因此没有安装
  • 可使用pycaffe接口

安装matlab

  • 详见:Ubuntu14.04安装Matlab2014a
  • 如不使用matcaffe接口,可以不装

安装opencv

  • 详见:http://rodrigoberriel.com/2014/10/installing-opencv-3-0-0-on-ubuntu-14-04/
  • 点击打开链接
  • 注:opencv必须安装,上面的详细安装过程对我帮助还是挺大的,可以方便安装,同时可以根据下面网友的问题对照自己安装过程出现的一些小难点,进行快速解决。

安装依赖库(二):

$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
  • 1
  • 1

下载Caffe:这一步如果下载不了(我的就出现过服务器连接不上的问题),直接去github上面下载,然后解压到相应的路径上。

$ cd ~$ git clone git://github.com/BVLC/caffe.git
  • 1
  • 2
  • 1
  • 2

如果安装的是opencv3.0:

 需要将caffe里面的Makefile.config里面的关于Python版本信息的注释去掉,如下图所示:

# Uncomment if you're using OpenCV 3 OPENCV_VERSION := 3

同时需要讲python的路径放在/etc/profile最后面

export PYTHONPATH=/home/victorlee/caffe-master/python:$PYTHONPATH

查看路径 echo $PYTHONPATH


编译Caffe:

$ cd ~/caffe$ cp Makefile.config.example Makefile.config# 修改Makefile.config文件:去掉CPU_ONLY:= 1的注释$ make all$ make test$ make runtest
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

配置pycaffe:

a、安装依赖库:

$ sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython$ sudo apt-get install protobuf-c-compiler protobuf-compiler
  • 1
  • 2
  • 1
  • 2

b、编译:

$ cd ~/caffe$ make pycaffe
  • 1
  • 2
  • 1
  • 2

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

$ sudo gedit /etc/profile# 末尾添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH# 用完整路径,不要用~$ source /etc/profile # 使之生效
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

d、测试是否可以引用:

$ pythonPython 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import caffe>>> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

配置matcaffe:

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

sudo apt-get install gcc-4.7 g++-4.7 g++-4.7-multilib gcc-4.7-multilibsudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 100 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 100 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50sudo update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.7 100sudo update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.8 50# 验证gcc默认版本:$ gcc -v 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

b、编译:

$ cd ~/caffe# 修改Makefile.config文件,MATLAB_DIR := /usr/local/MATLAB/R2014a$ make matcaffe
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

c、添加工作空间:

$ sudo matlab -nodesktop -nosplash>>> addpath ~/caffe/matlab>>> savepath

MNIST训练

之前将Caffe的环境搭好了,现在用MNIST这个数据集进行测试,继续在$CAFFE_ROOT下进行操作。

./data/mnist/get_mnist.sh./examples/mnist/create_mnist.sh
  • 1
  • 2
  • 1
  • 2

经过上述操作./examples/mnist/路径下会有mnist_test_lmdb和mnist_train_lmdb两个文件夹,分别是测试和训练数据。

在最终训练之前需要修改./examples/mnist/lenet_solver.prototxt最后一句话为,

solver_mode: CPU
  • 1
  • 1

这样保证整个训练过程在CPU上进行,最后执行训练命令,

cd $CAFFE_ROOT./examples/mnist/train_lenet.sh



问题汇总:

1.caffe的python接口配置问题

在使用make pycaffe 命令完成caffe的python接口生成之后,还需要将python接口的路径进行设置。

路径设置一般有两种方式(具体方法百度),为方便使用,这里设置为永久路径。

使用命令

gedit ~/.bashrc

来对路径进行设置,在文件最后一行加入路径:

export PYTHONPATH=/home/startag/caffe/python/:/home/startag/caffe/python/caffe/

注销或者重启,路径生效。

 

import caffe时错误提示

1. 错误提示:ImportError: No module named skimage.io

解决方法:

直接使用终端安装:

pip install -U scikit-image

如果提示不识别   pip  命令,在Ubuntu14.04(64bit)下,使用下面命令安装pip包管理软件,也可以使用新立得软件包搜索“scikit-image”安装。

wget https://bootstrap.pypa.io/get-pip.py  --no-check-certificatesudo python get-pip.py

 

问题:

ImportError: No module named google.protobuf.internal

提示错误可使用新立得软件包搜索“python-protobuf”安装或者直接输入命令:

sudo pip install protobuf
出现这个问题的时候,我是这样解决的。参考:http://stackoverflow.com/questions/31308812/no-module-named-google-protobuf

然后使用import caffe测试接口是否调试成功。

 

问题:

from google.protobuf import symbol_database as _symbol_databaseImportError: cannot import name symbol_database

解决方法: 

sudo pip install --upgrade protobuf




参考资料;

[1]:http://www.cnblogs.com/empty16/p/4828476.html

[2];http://stackoverflow.com/questions/31308812/no-module-named-google-protobuf

[3]:http://blog.csdn.net/lkj345/article/details/51280369


0 0