目的:使用自己的数据集,使用caffe自带的ImageNet网络结构,训练测试
- 参考官网链接:http://caffe.berkeleyvision.org/gathered/examples/imagenet.html
- 我自己准备的数据集:http://pan.baidu.com/s/1o60802I
我们的数据集图片分10个类,每个类有100个train图片(train文件夹下,一共1000),20个test图片(val文件夹下,一共200)
一、首先准备自己的数据集
我们需要准备的文件有:
1 文件夹train:里面放训练的图片
2 文件夹val:里面放val的图片
3 train.txt :训练图片的文件名和对应的类别
4 val.txt:测试图片的文件名和对应的类别
我已经为大家准备好了,下载链接:http://pan.baidu.com/s/1o60802I
以后大家自己准备数据集,就按照上面的方式将 图片和txt文件,放入对应目录下
二、创建lmdb格式数据集
在caffe安装的根目录下执行下面的脚本可以创建lmdb文件,用于caffe的数据输入;
./examples/imagenet/create_imagenet.sh
对于这个脚本,我们打开,根据自己的路径做更改;
三、计算图像均值
输入数据需要训练图片的均值图像
./examples/imagenet/make_imagenet_mean.sh
计算完后得到一个文件:
data/ilsvrc12/imagenet_mean.binaryproto.
当然,跟上面一样,我们使用需要更改脚本对应的路径
四、配置网络结构文件
网络模型文件在 models/bvlc_reference_caffenet/train_val.prototxt
文件中;
这里我们直接使用caffe提供的这个网络结构,以后我们再根据自己的想法做更改;
注意:大家需要打开这个文件,更改里面的路径
五、训练参数文件
训练参数文件在:
models/bvlc_reference_caffenet/solver.prototxt中
对solver.prototxt
修改参数
六、开始训练
./build/tools/caffe train --solver=/home/a216/caffe-master/sloanqin/data/godpool/txt/solver.prototxt
当然,上面的命令,需要根据你自己的路径相应的改下
七、结果
训练过程中,可以看到正确率在不断提升;最后的准确率是50%;
我们的样本数很少,当图片到百万数量级的时候,效果会很大提升;
而且我提供的数据是淘宝的图片,本身的难度很大,就是人也很难分清楚