caffe学习笔记(1)--配置及导入自己的数据

来源:互联网 发布:期权模拟交易软件 编辑:程序博客网 时间:2024/06/05 06:00

1、caffe配置

环境:caffe+win10+VS2013+cuda7.5+cudnn5.0

caffe:https://github.com/Microsoft/caffe

cuda:https://developer.nvidia.com/cuda-toolkit-archive

吸取了之前装matconvnet的经验,将cudnn的文件复制到了cuda7.5相应的文件夹里面

上面的工具都安装好之后,用VS2013打开caffe-master\windows\Caffe.sln

编译的时候VS会自动下载各种依赖库,需要一些时间,网上有网友提供了百度云盘链接

虽然碰到了一些问题,但是网上都有网友提供了解决方案,配置花了大半天的时间

参考:

http://m.blog.csdn.net/article/details?id=52438612


2、向caffe导入数据

期末考试的作业是训练mnist数据,提高识别率,老师给的数据,已经将各类图像路径与label放在一个txt文件里面分好了。

convert_imageset的作用是将原始数据转换为caffe的lmdb或者leveldb格式的文件,(我这里所有的操作都不是运行脚本文件,而是直接修改相关的cpp文件)convert_imageset.cpp文件里面main的argv路径

compute_image_mean的作用是生成mean.binaryproto文件,修改compute_image_mean里面main函数的argv路径,特别奇怪db->Open(argv[1], db::READ);会报错,没有在网上找到有效的解决方法,想到既然是lmdb打开出错,那我直接在生成lmdb的时候生成mean.binaryproto不就可以了,然后将生成mean.binaryproto的代码拷贝到convert_imageset.cpp的后面,成功生成mean.binaryproto文件。

用来训练的网络用的是caffe-master\examples\mnist\里面的lenet

caffe的作用是训练网络,给solver添加网络lenet_solver.prototxt的路径,注意修改lenet_solver.prototxt文件里面net和snapnet的路径,修改lenet_train_test.prototxt文件里面训练数据和测试数据的路径,训练完网络,可以在log文件里面看到识别率。

classification的作用是利用训练好的网络对图像进行分类,训练好网络之后,修改classification.cpp的main函数的argv路径,就可以对指定的图像进行分类。需要注意一下,classification用的网络得是deploy的,也就是caffe-master\examples\mnist\lenet.prototxt,特别需要注意的是shape: { dim: 64 dim: 1 dim: 28 dim: 28 }里面的参数,我按照默认的,loaf网络网络的时候失败,调试才发现刚好差三倍,把shape的第二个参数从1改成3之后就通过了,可是看原始图像明明是8位灰度的,想不通。。。

deploy和solver可以具体参考这个http://blog.csdn.net/lanxuecc/article/details/52474476

整个过程描述起来很简单,but实际调试又花费了大半天的时间。

老师给的数据识别率用现成的网络能够达到0.992,but只能给及格分。。。嗯,先就酱紫,寒假的时候再集中时间具体研究一下caffe,看一些相关论文,看能不能再提高一些。



0 0