cifar10——windows下的caffer_master编译训练过程

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

1.下载数据:

2.格式转换:转换成LMDB格式

3.求均值文件

lmdb

D:\caffe\caffe-master\Build\x64\Debug\compute_image_mean.exe D:\caffe\caffe-master\examples\cifar10\cifar-10\bat\output\cifar10_train_lmdb D:\caffe\caffe-master\examples\cifar10\cifar-10\cifar10_mean\mean_lmdb.binaryproto  
pause

leveldb要写出backend=leveldb,因为默认是lmdb

D:\caffe\caffe-master\Build\x64\Debug\compute_image_mean.exe -backend=leveldb  D:\caffe\caffe-master\examples\cifar10\cifar-10\bat\output\cifar10_train_leveldb D:\caffe\caffe-master\examples\cifar10\cifar-10\cifar10_mean\mean.binaryproto  
pause

开始训练:

修改两个文件

网络模型文件cifar10_quick_train_test.prototxt

超参数文件cifar10_quick_solver.prototxt

编写train.bat文件

D:\caffe\caffe-master\Build\x64\Debug\caffe.exe train --solver=D:/caffe/caffe-master/examples/cifar10/cifar10_quick_solver.prototxt
pause

成功

4.分类预测classification.bat

出现问题

Check failed: labels_.size() == output_layer->channels() (15 vs. 10) Number of labels is different from the output layer dimension.

分析了多种原因,1.数据转换的两种格式不是影响因素,2.与batchsize无关3.与label有关,

数据下载后,会提供一个label为batches.meta.txt,有文章说label中的不能有空行,否则报错,尝试删掉空行后依然报错,所以选择自行抒写label,同样输入10个标签

然后训练不出现size不一的问题,但是出现了图片为空的错误

 Check failed: !img.empty() Unable to decode image D:\caffe\caffe-master\examples\cifar10\cifar-10\dog2.jpg

原因:图片名字写错了,不是dog2是dag2,我很服气,修改后,测试成功

同样方法对leveldb进行测试结果达到90%以上

用lmdb格式时,均值文件忘记改了,在网络模型文件中,用对应lmdb格式数据求出的mean文件,进行训练,测试,所得结果一样好,90%以上,但略有差别

猜你喜欢

转载自blog.csdn.net/yxswhy/article/details/82711993