cifar10——windows下的caffer_master编译训练过程
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%以上,但略有差别