21天实战caffe-第一天-运行手写体识别案例mnist数据集
Caffe学习笔记
运行手写体数字识别例程
1.ubuntu准备caffe运行环境
1.1首先apt-get caffe运行所有依赖包
sudo apt-get install git
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-complier
我的ubuntu无法定位protobuf-complier这个包,所以就没安装,对后面也没有任何影响目前看来
用了网上说的这个方法依旧无效,so byebye
继续装包
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
1.2克隆caffe源码(很慢很慢)
git clone http://github.com/bvlc/caffe.git
cd caffe/
mv Makefile.config.example Makefile.config
1.3修改Makefile.config文件
浩哥说让我在ubuntu的虚拟环境中去跑代码,所以文件修改的比较多,如下
1.4编译
一开始由于没有编译所以导致后面无法进行
stt@stt-desktop:~/caffe$ ./examples/mnist/create_mnist.sh
Creating lmdb...
./examples/mnist/create_mnist.sh: 17: ./examples/mnist/create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found
但是编译过程又出了很大麻烦
4.1由于conda里面没有numpy所以又装了numpy
conda install numpy
装好之后开始编译依旧出错
因为没有hdf5.h这个文件所以在文件中加了这句
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
这也是makefile.config文件需要修改的地方
4.2sudo make -j4进行编译(4就是4核进行编译,相对不加4速度快很多)
环境终于搭好了(一切优秀的程序都死于搭环境)
5.开始跑代码
5.1下载mnist数据集
5.2转换数据集格式(一定要在caffe目录下执行)~/caffe$ ./examples/mnist/create_mnist.sh
转换成功后会有两个lmdb目录(训练集和测试集)
5.3训练超参数,得到一个分类准确率在99%以上的模型
执行之后并没有开始训练。是因为没有改成cpu来训练
所以vi lenet_solver.prototxt
修改最后Gpu改为cpu
然后执行./examples/mnist/train_lenet.sh就成功啦
accuracy=0.9911准确率99%
loss=0.029
6用训练好的模型来对数据进行预测
命令及结果如下,我并没有理解