caffe学习(2)------用caffe训练自己的图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lishanlu136/article/details/51490271

前天写了一篇caffe的配置方法,阅读访问量一夜之间一千多,让我自己就有点惊讶,deeplearning看来是有点火啊。

在按照上篇的方法:http://blog.csdn.net/lishanlu136/article/details/51474582配置完caffe后,就能跑跑图片了,当然最简单的就是mnist手写数字识别库了,其次就是cifar10库,跑这些示例有助于对caffe跑图片过程的了解。不过现在我介绍的是用自己的图片库来跑。

下面是具体过程:

1、前期准备,当然是自己的图片库,RGB图和灰度图均可,分为两个文件夹,train用于装训练用的图片(包括正样本,负样本),test用于装测试用的图片(包括正负样本),然后在train,test的同级目录下建立label文件,对图片进行标注,如:

别忘了,test文件夹也要做类似的标注,现在跑图片的前期准备算是做完了。

2、利用convert_imageset.exe转换图片格式

因为caffe跑图片需要图片的数据格式为lmb或leveldb格式,所以跑图片之前需要转换,其实也可以直接读图片进行训练,但是这样太慢了,对于数据库较大的,建议还是转吧,记得在上次配置caffe时生成的convert_imageset.exe吗,如果上次配置有勾选编译convert_imageset这个工程,就在caffe.exe同级目录下能找到,如果没找到,再编译一次就是了;我们得写一个.bat文件,怎么写.bat文件?用记事本写,最后把后缀改为.bat就是了,具体写法如下:

这是转train文件夹里面的图片,test文件夹一样得转,我是转成leveldb格式的,因为我的图片是灰度图,所以,我这里设置了gray=true,如果你的是RGB图就不用管它,因为默认为RGB图,shuffle是在转的时候设置的打乱顺序,因为,我的图片正样本在前面,负样本在后面,不打乱的话,对后面的训练很不利。

3、利用compute_image_mean.exe计算图片库的均值

这个.exe可执行文件也能在caffe.exe同级目录下找到,通过调用compute_image_mean.exe计算图片库的均值,具体写法如下:

这里我的compute_image_mean.bat文件和我的train_leveldb文件夹是在同一级,所以,我这里是用的相对路径,运行之后,会在同级目录下生成trainmean.binarypaoto文件,别忘了,test_leveldb也得计算。

4、修改训练网络的配置文件和solver.prototxt文件

到这一步了,主要就是修改里面的路径问题了,主要就是data层的source路径,和 transform_param 里的mean_file路径,最后输出的分类数num_output也得改为符合自己的分类数,最后就是solver.prototxt文件了,它就是调用前面的网络进行训练的的,所以路径一定不用错,不然找不到训练网络,这个solver.prototxt文件是对整个训练过程的宏观设置,可以设置迭代次数,基准学习率,权重衰减等等。(ps:关于路径,我开始用‘\'一直出错,报错原因是找不到文件,后来改为了'/',才对。)

5、写run.bat文件调用caffe.exe可以开始训练了

好了,训练自己的图片库就这样结束了。

猜你喜欢

转载自blog.csdn.net/lishanlu136/article/details/51490271
今日推荐