Caffe学习之imagenet

1、  准备数据,使用imagenet(alex)训练0-9车牌图片:

1.1   9000多张0-9的图片,各选出一二十张作为测试集,剩余的作为训练集。(将各个类别的文件夹设置为label,方便处理):

 1.2 制作labels文件,使用python脚本解决

格式:(基于当前文本的)路径+文件名+“ ”+类别

测试集有时是不同类放一起的所以:文件名+“ ”+类别

 

1.3 生成网络所需数据库文件LEVELDB(测试集,训练集分开)

使用caffe自带的convet_imageset.exe处理,bat文件书写如下(看许多网上教程,图片需要设置成相同大小,但我这里用的是三通道不同大小的图片也能训练!):

 

D:\caffe\caffe-master\Build\x64\Debug\convert_imageset.exe --resize_height=256 --resize_width=256 --shuffle --backend="leveldb" D:\caffe\mydata\test\ D:\caffe\mydata\val\test.txt D:\caffe\mydata\testleveldb

Pause

 

1.4 生成网络所需的均值文件(测试集训练集分开)

使用caffe自带的computer_image_mean.exe处理LEVELDB,生成训练所需的均值文件,也许是训练的时候图片数据需要减去均值,训练的效果才好!

 

D:\caffe\caffe-master\Build\x64\Debug\compute_image_mean.exe D:\caffe\mydata\testleveldb D:\caffe\mydata\Imagnet\imagenet_test.binaryproto --backend=leveldb

Pause

 

1.5 训练imagenet

修改配置文件solver.prototxt:

net: "D:/caffe/mydata/Imagnet/train_val.prototxt"  #网络描述文件绝对路径

test_iter: 1000  #训练是的测试次数

test_interval: 1000  #

base_lr: 0.01 #学习率参数

lr_policy: "step"  #学习率的方式

gamma: 0.1

stepsize: 100000 #多少次之后学习率会更改?

display: 20 #多少次显示一次

max_iter: 450000 #迭代次数次数

momentum: 0.9

weight_decay: 0.0005

snapshot: 10000 #多少次存储一次模型

snapshot_prefix: "D:/caffe/mydata/Imagnet " #模型存储路径

solver_mode: CPU #训练方式

网络描述文件train_val.prototxt:

1更改四处路径:训练集的LEVELDB路径,相应均值文件路径

                                       测试集的LEVELDB路径,相应均值文件(这里两个均值文件使用的是同一个,不清楚为什么?)

                                       Batch_size:视机器而定100,每次一百张,。。。。

2更改输出类别默认1000中,这里只有10个数,所以是10

 

之后就能训练了,机子差的batch_size没设好会报错,我的就是,后来换别人的机器训练。。。。。。。。。。。。

 

1.6 查看训练结果:

使用caffe自带的caffe.exe test 功能,参数:模型网络描述文件,训练模型,猜测其使用测试集,去测试模型的准确度,所以只做前向传播,不改变模型,查看模型的训练结果

 

D:\caffe\caffe-master\Build\x64\Debug\caffe.exe test -model=D:\caffe\mydata\Imagnet\train_val.prototxt -weights=D:\caffe\mydata\Imagnet\_iter_4000.caffemodel

Pause

 

1.7 测试自己的图片

使用caffe自带的classification.exe功能,测试实际效果,这里好多坑:之前说了准备数据时,没有注意图片大小,一维这里 需要设置一下图片大小以及格式,最后发现,反而不用,测试的时候使用三通道的不同大小的图,都能有输出。

 

输入参数:

网络描述文件deploy.proto,这个描述文件与训练时的描述文件不同,因为这里只是用来测试的!!!!!!!!在caffe/model/bl alex文件夹中有一个deploy.proto文件,因为用的就是alex网络,所以我直接拿来用,修改了两处,,若是其他的网络,只能自己改了根据train.proto

训练模型

均值文件

标签txt//不知道用来干嘛的,里面只用0-9十个数!

D:\caffe\caffe-master\Build\x64\Debug\classification.exe D:\caffe\mydata\Imagnet\deploy.prototxt D:\caffe\mydata\Imagnet\_iter_10000.caffemodel D:\caffe\mydata\Imagnet\imagenet_val.binaryproto D:\caffe\mydata\test\labels.txt D:\caffe\mydata\test\9.bmp

pause

 

结果:

 

posted @ 2017-07-15 19:30  kanuore  阅读(96)  评论(0)    收藏  举报