windows 训练、微调caffenet 训练测试自己的数据
2017-11-21 20:16
781 查看
下载caffeNet模型
下载的caffe-master文件中,/models/bvlc_reference_caffenet 文件夹不包含bvlc_reference_caffenet.caffemodel,下载地址:http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel 也可以用脚本方式下载。准备数据—生成lmdb/leveldb
我在这里使用的是bat命令行的方式,也有很多博主上使用shell文件(create_imagenet.sh)。使用sh文件网上也已经有很多的代码,在Windows系统命令行中,可在命令行执行sh create_imagenet.sh如果要使用.bat文件,代码:
SET GLOG_logtostderr=1 D:/CAFFE/caffe-master/Build/x64/Release/convert_imageset.exe --resize_width=200 --resize_height=200 --shuffle --backend=lmdb D:/CAFFE/caffe-master/examples/hello_caffe/data/train/ D:/CAFFE/caffe-master/examples/hello_caffe/train.txt D:/CAFFE/caffe-master/examples/hello_caffe/train_lmdb D:/CAFFE/caffe-master/Build/x64/Release/convert_imageset.exe --shuffle --backend=lmdb D:/CAFFE/caffe-master/examples/hello_caffe/data/val/ D:/CAFFE/caffe-master/examples/hello_caffe/val.txt D:/CAFFE/caffe-master/examples/hello_caffe/val_lmdb pause
这里我使用的是绝对路径,需要的东西有:(按顺序)
convert_imageset.exe转换图像为lmdb/leveldb格式
训练数据集位置:D:/CAFFE/caffe-master/examples/hello_caffe/data/train/
训练数据集标签:D:/CAFFE/caffe-master/examples/hello_caffe/train.txt
训练数据集lmdb文件存放位置:D:/CAFFE/caffe-master/examples/hello_caffe/train_lmdb
同理,测试数据集转换需要:convert_imageset.exe、测试数据集位置、lmdb文件存放位置。
--resize_width –resize_height设置图像的宽度和高度
--shuffle 打乱数据顺序,不然lossaccuracy曲线会震荡
--backend 生成数据的格式,代码中为生成lmdb格式,如果要生成leveldb也可以改为leveldb
注:如果生成失败,需要将已经生成的lmdb文件夹删除,不然会报错
计算图像均值
计算图像均值使用的是compute_image_mean.exeD:/CAFFE/caffe-master/Build/x64/Release/compute_image_mean.exe --backend=lmdb D:/CAFFE/caffe-master/examples/hello_caffe/train_lmdb D:/CAFFE/caffe-master/examples/hello_caffe/mean.binaryproto Pause
compute_image_mean.exe 计算图像均值
训练数据集的位置: D:/CAFFE/caffe-master/examples/hello_caffe/train_lmdb
生成均值文件及位置: D:/CAFFE/caffe-master/examples/hello_caffe/mean.binaryproto
--backend 输入文件类型
网络定义
选择你要用的网络模型,我这里用的是caffenet,复制原来的train_val.prototext、solver.prototxt、deploy.prototxt到你要建模型的位置,修改相应参数:train_val.prototext修改:
设置训练数据和测试数据的相应位置以及全连接层输出。
原来的caffenet能够输出1000个类别,但我只需要输出9个类别。在num_output位置设为9,即网络输出类别数量。(TIPS:修改输出标签数量,需要修改全连接层的名称,在这里我加上了_new,例如fc6改为fc6_new。否则会在自己分类时,出现<9 vs 1000>之类的错误)
训练模型
D:/CAFFE/caffe-master/Build/x64/Release/caffe.exe train -solver=D:/CAFFE/caffe-master/examples/hello_caffe/caffemodel/solver.prototxt --weights D:/CAFFE/caffe-master/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel Pause
Caffe.exe 调用caffe
solver.prototxt 设置输入网络配置
bvlc_reference_caffenet.caffemodel 需要调整的网络模型
solver.Prototxt修改net和snapshot_prefix两个位置,根据需要修改迭代次数、训练模式等等,以下为solver.prototxt文件:
net: "D:/CAFFE/caffe-master/examples/hello_caf a313 fe/caffemodel/train_val.prototxt" test_iter: 6 test_interval: 20 base_lr: 0.001 lr_policy: "fixed" gamma: 0.1 stepsize: 100000 display: 20 max_iter: 4000 momentum: 0.9 weight_decay: 0.0005 snapshot: 1000 snapshot_prefix: "D:/CAFFE/caffe-master/models/bvlc_reference_caffenet/caffenet_train" solver_mode: GPU
运行bat文件后,就生成了model文件:
测试生成的模型
D:/CAFFE/caffe-master/Build/x64/Release/classification.exe D:/CAFFE/caffe-master/examples/hello_caffe/caffemodel/deploy.prototxt D:/CAFFE/caffe-master/examples/hello_caffe/caffemodel/11.20/caffenet_train_iter_4000.caffemodel D:/CAFFE/caffe-master/examples/hello_caffe/mean.binaryproto D:/CAFFE/caffe-master/examples/hello_caffe/label.txt D:/CAFFE/dataset/12class_tif/water/0186.tif Pause
我是参照mnist数据集的分类写出来的,其中:
classification.exe为分类器
deploy.Prototxt文件: 将caffe-master/models/bvlc_reference_caffenet目录下的deploy.Prototxt复制修改,这里改了输出层的标签数量(num_output)和全卷积层名称(与前面的train_val.prototxt文件全卷积层名称一致)。
caffenet_train_iter_4000.caffemodel:为训练生成的模型
label.txt:类别对应的标签,输出了9个类别,分别设置每一个类别对应的标签(根据自己需要,可以为字符串)
0186.tif:测试的图像
结果展示
分类结果,得到该图像为水体的概率为0.9999,为harbor的概率为0.0001
相关文章推荐
- Caffe深度学习入门—— caffenet 微调网络 训练自己的数据并测试训练的模型
- Caffe_Windows学习笔记(二)用自己的数据训练和测试CaffeNet
- Caffe下自己的数据训练和测试
- windows-caffe入门之用CPU训练自己的数据
- Windows下用caffe训练自己的数据
- ubuntu14.04+caffe训练测试自己的图片数据
- mxnet 训练--如何生成rec 数据 +自己在本机测试的结果
- windows-caffe入门之用CPU训练自己的数据
- caffe-windows训练自己的数据(1)
- Caffe训练、测试自己的图片数据
- caffe安装,编译(包括CUDA和cuDNN的安装),并训练,测试自己的数据(caffe使用教程)
- windows-caffe入门之用CPU训练自己的数据
- Windows Caffe 学习笔记(四)搭建自己的网络,训练和测试MNIST手写字体库
- 4000 windows-caffe 训练和测试自己的数据集
- windows-caffe入门之用CPU训练自己的数据
- Caffe下自己的数据训练和测试
- windows-caffe入门之用CPU训练自己的数据
- Caffe学习笔记(六)—— Windows下训练自己的数据
- 使用自己的数据集训练和测试"caffenet"