版权声明:本文为博主原创文章,未经博主允许不得转载。 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
- 现在我们有了训练数据、网络模型、指定了相关训练参数,可以开始训练网络 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个测试样本。