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
结果:


浙公网安备 33010602011771号