Ubuntu安装cpu版caffe及LeNet测试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shiheyingzhe/article/details/83419639

Ubuntu的官方安装方法http://caffe.berkeleyvision.org/install_apt.html
Ubuntu版本(>= 17.04)运行简单的命令就可以的
CPU版本:

sudo apt install caffe-cpu 

GPU版本:

sudo apt install caffe-cuda

对于版本为Ubuntu16.04的,安装的流程:

首先安装opencv

先下载并安装opencv3.4,https://opencv.org/opencv-3-4.html,下载的是Sources版本,下载好以后,解压到~目录,重命名为opencv

安装必要的包

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install python-pip
sudo apt-get install python3-pip
pip install numpy
pip3 install numpy

创建build文件夹

cd ~/opencv
mkdir build
cd build

编译的选项,官方文档中有说明具体的选项含义,可以根据需要选择性的使用,如果安装了anaconda,编译前先注释掉anaconda的环境变量

cmake
-D WITH_IPP=OFF       #是否要安装IPP
-D CMAKE_BUILD_TYPE=RELEASE     
-D CMAKE_INSTALL_PREFIX=/usr/local   #编译的路径
-D BUILD_opencv_python3=ON   #是否编译Python3的库
-D BUILD_opencv_python2=ON ..  #是否编译Python2的库

开始编译文件

make -j5 # runs 7 jobs in parallel

安装库文件

sudo make install

Python中验证安装是否完成:

import cv2
cv2.__version__

如果报错可以搜cv2.cpython-36m-x86_64-linux-gnu.so这个文件 然后复制到./lib/python3.6/site-packages库文件夹中

安装caffe

先下载caffe源码

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

安装依赖环境:

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
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev libboost-all-dev

添加Makefile文件

cd ~/caffe  
cp Makefile.config.example Makefile.config #也可以复制粘贴再重命名

编辑sudo gedit Makefile.config,

INCLUDE_DIRS和LIBRARY_DIRS处增加代码为:
INCLUDE_DIRS :=$(PYTHON_INCLUDE)/usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB)/usr/local/lib  /usr/lib   /usr/lib/x86_64-linux-gnu/hdf5/serial
# CPU_ONLY := 1去掉#注释 CPU_ONLY := 1
#USE_OPENCV := 0去掉#注释 USE_OPENCV := 1
#OPENCV_VERSION := 3去掉#注释 OPENCV_VERSION := 3

开始编译:

cd ~/caffe
make all
make test
make runtest

test通过会有PASSED出现

接着编译pycaffe:

安装Python接口依赖库

在caffe根目录下,有个python文件夹,文件夹里面有个requirements.txt,里面有需要的依赖库和版本信息,按照其安装即可,在安装前,需要先安装fortran编辑器(gfrotran),因为安装scipy库时需要它命令:

sudo apt-get install gfortran
cd ~/caffe/python
for req in $(cat requirements.txt); do pip install $req; done
for req in $(cat requirements.txt); do pip3 install $req; done

 将caffe根目录下的python文件夹加入到环境变量

先打开配置文件bashrc

sudo gedit ~/.bashrc

在文件的最后面添加

export PYTHONPATH=/home/用户名/caffe/python:$PYTHONPATH

最后使之生效:

source ~/.bashrc

编译python接口

cd ~/caffe/
make pycaffe

验证是否完成:

python
import caffe

 如果导入成功,那就没问题,如果报错No module named skimage.io,是matplotlib的安装有问题,Matplotlib 3.0+ does not support Python 2.x, 3.0, 3.1, 3.2, 3.3, or 3.4.
可以安装低版本的skimage

pip install scikit-image==0.10.0

 

MNIST数据集的LeNet测试: 官网的介绍 Training LeNet on MNIST with Caffe
准备数据集并转换格式

cd ~/caffe
 ./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh

在./examples/mnist文件夹中生成新的文件夹mnist_test_lmdb、mnist_train_lmdb
修改./examples/mnist/lenet_solver.prototxt文件,最后修改为CPU,然后开始运行

./examples/mnist/train_lenet.sh

其中网络的定义文件是./examples/mnist/lenet_train_test.prototxt,训练的配置文件是lenet_solver.prototxt
输出的模型文件在目录./examples/mnist中,关于网络的定义和具体含义可以参看官方的教程

参考的内容:
http://blog.sina.com.cn/s/blog_e5ef40140102wyq8.html
https://blog.csdn.net/u010193446/article/details/53259294
https://blog.csdn.net/hjxu2016/article/details/70256147
http://caffe.berkeleyvision.org/install_apt.html

猜你喜欢

转载自blog.csdn.net/shiheyingzhe/article/details/83419639