从零开始安装 Caffe --CPU only----没有 pycaffe

2019-05-28 23:39:46 浏览数 (1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1437719

最近新发了一台服务器, i7-4790/3.6GHz 处理器, 显卡 GTX 1080 Ti Pascal

开始新一轮的装机旅程。

系统是厂家安装的 Ubuntu14.04

下面从零开始安装Caffe

sudo apt-get update

sudo apt-get update

(2)安装caffe的依赖项

1)一般依赖项

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

2)BLAS依赖项

sudo apt-get install libatlas-base-dev

sudo apt-get install libopenblas-dev

3)python依赖项

安装python及其头文件

sudo apt-get install python

sudo apt-get install python-dev

安装python的其他依赖

sudo apt-get install python-numpy

sudo apt-get install ipython

sudo apt-get install ipython-notebook

sudo apt-get install python-sklearn

sudo apt-get install python-skimage

sudo apt-get install python-protobuf

4)谷歌glog和gflags和lmdb依赖项

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

(5)安装git,并且下载代码

sudo apt-get install git

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

然后进入到源码目录

cd caffe

(6)编译Caffe

cp Makefile.config.example Makefile.config

然后修改Makefile.config设置你的python的路径和matlab的路径

修改Makefile.config文件:去掉CPU_ONLY:= 1的注释

注意:-j8表示使用多核进行编译,8是核心个数

$ make all

$ make test

$make runtest

接着看看在 Caffe 中怎么用 LetNet-5 进行训练和测试,整个流程如下:(先cd到 Caffe 的根目录下)

1)下载 minist 数据的命令:

$cd data/mnist

$ ./get_mnist.sh

这个脚本主要内容是从 http://yann.lecun.com 上下载 mnist 训练和测试数据,并解压

2)将下载的数据转换为 Caffe 能识别的数据格式 LEVELDB 或 LMDB,对应的命令为:

$ ./examples/mnist/create_mnist.sh

上面的脚本调用了 build/examples/mnist/convert_mnist_data.bin这个可执行程序,对应的源文件为 convert_mnist_data.cpp

完成之后,在目录 examples/mnist 发现生成了 examples/mnist/mnist_train_ lmdb/ (对应训练集) 和 examples/mnist/mnist_test_lmdb/ (对应测试集或验证集)两个目录,每个目录下都有两个文件: data.mdb和lock.mdb

3)定义 LetNet-5 网络模型,在 lenet.prototxt 中描述了广义的LetNet-5网络层设置,在 lenet_train_test.prototxt 中描述了 LetNet-5 训练和 测试时各网络层的设置。大致是差不多的,就是有些细节不一样。

4)有了网络模型,在训练前我们还需要指定一些训练参数,在lenet_solver.prototxt 中实现该功能的。这个文件最后一行是 GPU,如果没有GPU,需要改为CPU。不然报错

可以修改一下训练迭代次数,这样时间不太长

The maximum number of iterations

max_iter: 1000

snapshot intermediate results

snapshot: 500

  1. 现在我们有了训练数据、网络模型、指定了相关训练参数,可以开始训练网络 LetNet-5 了,使用下面的命令: $./examples/mnist/train_lenet.sh,训练完成之后,我们得到了一个关于 LetNet-5 在 mnist 数据上的模型 caffemodel

6)使用训练好的模型对数据进行预测,运行下面的代码:

$ ./build/tools/caffe.bin test

-model examples/mnist/lenet_train_test.prototxt

-weights examples/mnist/lenet_iter_1000.caffemodel

-iterations 100

命令行解释:

./build/tools/caffe.bin test,表示只做预测(前向传播计算),不进行参数更新(后向传播计算)

-model examples/mnist/lenet_train_test.prototxt,指定模型描述文本文件

-weights examples/mnist/lenet_iter_1000.caffemodel 指定模型预先训练好的权值文件

-iterations 100,指定测试迭代次数,参与侧测试的样本数目为

(iterations*batch_size), test batch 设置为 100, 所以iterations =100时,刚好覆盖 10000个测试样本。

0 人点赞