本文章主要用于参考在运行MNIST实例中出现的问题,至于CAFFE的环境配置请参考其他博客。
CAFFE下载
话不多说 直接git
git clone git://github.com/BVLC/caffe.git
如果没有安装git,先执行一步
sudo apt-get install git
可以看到caffe的目录已经有了 (忽略目录caffe1 是自己备份的一个目录)
编译CAFFE问题
网上的大多数帖子和教程都是直接对数据进行格式转换,然后在caffe根目录下进行编译。
但会出现以下的问题:
使用指令./examples/mnist/creat_mnist.sh
对数据集训练会出现如下错误./build/tools/caffe: not found
然后你去根目录下寻找问题,会发现build文件夹都不存在。
其次,使用指令./examples/mnist/create_mnist.sh
对数据进行转换会出现build/examples/mnist/convert_mnist_data.bin: not found 这样的错误
并不是像网上其他博客写的那样,没有在 /caffe/根目录下执行,而是缺少了关键的一步,Makefile.config的配置。
Makefile.config配置
1.进入caffe
cd caffe
2.生成Makefile.config文件,这里是将caffe目录下自带的Makefile.config.example文件复制一份并更名为Makefile.config,命令如下:
cp Makefile.config.example Makefile.config
然后在caffe目录下就会有一个Makefile生成
3.修改Makefile.config
sudo gedit Makefile.config
因为是CPU版本,所以只需要修改两处
(1)将CPU_ONLY :=1前的注释#去掉
(2)修改配置引用文件路径
主要是HDF5的路径问题
在INCIUD_DIR后面加/usr/include/hdf5/serial
在LIBRARY_DIRS后面加/usr/lib/x86_64-linux-gnu/hdf5/serial
在执行时,可能会出现如下情况:
不影响后续,可忽略。
编译
执行以下语句
cd caffe
make all
会出现如下问题:
解决方案:
在 Makefile文件的195 行 LIBRARIES += opencv_core opencv_highgui opencv_imgproc
opencv_imgcodecs opencv_videoio
具体位置在PYTHON_LIBRARY上面一行
修改后 先记得执行如下操作:
make clean
再接着
make all
make test
make runtest
至此出现以下的画面 就说明编译成功了
MNIST实例
1.下载mnist数据集
cd caffe
./data/mnist/get_mnist.sh
2.转换格式
下载的数据集为二进制格式,必须转换成caffe能识别的lmdb格式
./examples/mnist/create_mnist.sh
但是出现如下错误:F0731 14:55:38.217381 20313 convert_mnist_data.cpp:48] Check failed: image_file Unable to open file data/mnist/train-images-idx3-ubyte
原因:
在~/caffe/examples/mnist下的creat_mnist.sh中 数据集的名字不一致导致的
解决方案:
修改/caffe/data/mnist下
我们按照create_mnist.sh里的文件命名将数据集里的.(点号)改成-(短线),如下:
再次执行 ./examples/mnist/create_mnist.sh
/example/mnist下出现mnist_train_lmdb和mnist_test_lmdb就对了
3.训练数据集
./examples/mnist/train_lenet.sh
最后训练完的结果是这样的:
分类准确率99%.
4.用训练好的模型对数据进行预测
./build/tools/caffe.bin test \
-model examples/mnist/lenet_train_test.prototxt \
-weights examples/mnist/lenet_iter_10000.caffemodel \
以上就是caffe(cpu)+Mnist实例的所有内容,希望能帮到正在学习的你。