[Caffe-CPU]环境配置与测试流程

一、下载安装OpenCV

首先 安装依赖项

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

然后去官网找opencv 点我进入opencv官网
选择sourcecode下载,将下载的压缩包移至某个文件夹(我是~/Document/environment/)下载下来的格式是.zip,需要sudo-apt-get install unzip之后用unzip工具解压。

解压之后得到文件夹opencv-X.X.X,打开文件夹发现里面有个CMakefile.txt,就用cmake编译好了。于是在有CMakefile.txt的目录建立build文件夹,进入build然后执行

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

make -j8 

sudo make install

没有报错的话就安装好了。如果是先安装了cuda啥的的话可能出现版本导致的错误。关于CUDA_nppi_LIBRARY (ADVANCED)找不到的宝座,可以参考cuda9不再支持2.0架构导致的cmake报错。要是安装了cuda又卸载了的话可能还有残留,这个时候cmake也会报错。这种情况重启几遍,多cmake几次就好了。

二、下载安装caffe

首先相关环境配置一下。
安装ATLAS:

sudo apt-get install libatlas-base-dev

安装依赖包:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

去Caffe官方github下载Caffe到某个目录

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

然后在进入这个目录。里面有一个Makefile.config.example.复制一份命名为Makefile.config,打开修改一下:

cp Makefile.config.example Makefile.config
vim Makefile.config

修改内容如下:

  1. CPU_ONLY := 1这一行去掉注释,使得CPU_ONLY模式生效;
  2. OPENCV_VERSION := 3这一行去掉注释,使得有关opencv3.0的链接生效
  3. 修改hdf5文件的路径。我是64位系统所以要做以下修改:
    # Whatever else you find you need goes here.
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial /usr/local/include
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/lib /usr/lib
    
    如果您是32位系统则要更改目录名称
    # Whatever else you find you need goes here.
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial /usr/local/include
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/i386-linux-gnu/hdf5/serial /usr/local/lib /usr/lib
    

个就保存然后编译运行一下。这里用8个并行处理希望可以快一点qwq

sudo make all -j8

没有报错则

sudo make runtest

没有报错的话这个caffe就做好了。

三、用官方数据集测试caffe

sudo sh data/mnist/get_mnist.sh      
sudo sh examples/mnist/create_mnist.sh

之后更改LeNet的prototxt文件。lenet_solver.prototxt 文件设定运行CPU 版本或者 GPU 版本:

sudo vim examples/mnist/lenet_solver.prototxt

修改最后一行:solver_mode: CPU。

然后训练一下

sudo sh examples/mnist/train_lenet.sh

之后就在examples/mnist/文件夹下出现了:

-rw-r--r-- 1 root      root      1725006 4月  13 09:11 lenet_iter_10000.caffemodel
-rw-r--r-- 1 root      root      1724471 4月  13 09:11 lenet_iter_10000.solverstate
-rw-r--r-- 1 root      root      1725006 4月  13 09:02 lenet_iter_5000.caffemodel
-rw-r--r-- 1 root      root      1724470 4月  13 09:02 lenet_iter_5000.solverstate

这几个文件。他们就是我们训练好的模型了。接下来我们测试一下;在…/caffe目录下使用管理员权限编译运行刚刚的模型:

sudo ./build/tools/caffe.bin test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -iterations 100

可以看到

I0413 09:24:03.045549 22565 data_layer.cpp:73] Restarting data prefetching from start.
I0413 09:24:03.101616 22564 caffe.cpp:304] Batch 96, accuracy = 0.97
I0413 09:24:03.101655 22564 caffe.cpp:304] Batch 96, loss = 0.0803656
I0413 09:24:03.159685 22564 caffe.cpp:304] Batch 97, accuracy = 0.98
I0413 09:24:03.159719 22564 caffe.cpp:304] Batch 97, loss = 0.122915
I0413 09:24:03.216450 22564 caffe.cpp:304] Batch 98, accuracy = 1
I0413 09:24:03.216486 22564 caffe.cpp:304] Batch 98, loss = 0.00288249
I0413 09:24:03.274421 22564 caffe.cpp:304] Batch 99, accuracy = 1
I0413 09:24:03.274456 22564 caffe.cpp:304] Batch 99, loss = 0.00460428
I0413 09:24:03.274474 22564 caffe.cpp:309] Loss: 0.0289698
I0413 09:24:03.274492 22564 caffe.cpp:321] accuracy = 0.9906
I0413 09:24:03.274507 22564 caffe.cpp:321] loss = 0.0289698 (* 1 = 0.0289698 loss)

这种东西。这就是我们训练的结果了。

参考资料

official document
Ubuntu快速编译caffe
Caffe安装的坑整理

猜你喜欢

转载自blog.csdn.net/sinat_39763590/article/details/89278554
今日推荐