您的位置:首页 > 其它

cifar10数据集的训练测试及ResNet20模型测试

2017-11-15 13:56 816 查看
参考博客:http://blog.csdn.net/hongbin_xu/article/details/76407581

cifar10数据集:http://www.cs.toronto.edu/~kriz/cifar.html

CIFAR-10数据集包括由10个类别的事物,每个事物各有6000张彩色图像,每张图片的大小是32*32。

整个数据集被分成了5个训练集和1个测试集,各有10000张图片,即50000张图片用于训练,10000张图片用于测试(交叉验证)

下载数据

cd $CAFFE_ROOT
./data/cifar10/get_cifar10.sh


下载完成后,$CAFFE_ROOT/data/cifar10下多出了一些文件:



训练集:

这5个文件就是分成了5份的那50000张图片:

data_batch_1.bin

data_batch_2.bin

data_batch_3.bin

data_batch_4.bin

data_batch_5.bin

测试集:

测试数据集,总共10000张图片:

test_batch.bin

类别说明:

说明了整个cifar-10数据集所包括的10个事物类别:

batches.meta.txt

图片格式转换

cd $CAFFE_ROOT
./examples/cifar10/create_cifar10.sh


之后会在目录下生成三个文件:

cifar10_test_lmdb:测试集的lmdb文件

cifar10_train_lmdb:训练集的lmdb文件

mean.binaryproto:整个数据集所有图片的均值文件

训练数据集

cd $CAFFE_ROOT
./examples/cifar10/train_quick.sh


如果使用的是cpu模式,需要到文件中提到的所有prototxt文件中修改solver_mode为cpu。最后训练完时的准确率是75%左右,效果并不是很好。

下面用ResNet模型精确度可以达到90%以上

测试模型

测试时用到了caffe的python接口,所以一定要先编译并配置好了好了pycaffe。

我们不自己从头写python代码了,使用caffe提供的$CAFFE_ROOT/python/classify.py文件,参考自:http://blog.csdn.net/asukasmallriver/article/details/73089944

打开classify.py:

在图中所示位置添加一行代码,目的是修改均值计算错误 :

mean=mean.mean(1).mean(1)




将预测的结果打印出来:

print("Predictions:%s" % predictions) #在如图位置添加




添加如下代码到最后,目的是将结果排序,并找到对应的是什么:

# match the result
labelNums = len(predictions[0])
labels = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
for i in range(labelNums):
if i == 0:
maxPrediction = predictions[0][i]
maxIndex = i
else:
if maxPrediction < predictions[0][i]:
maxIndex = i
maxPrediction = predictions[0][i]
print(labels[maxIndex])


修改完就可以来测试了,caffe在$CAFFE_ROOT/examples/images下有一些图片:

python python/classify.py --model_def examples/cifar10/cifar10_quick.prototxt --pretrained_model examples/cifar10/cifar10_quick_iter_4000.caffemodel  --center_only  examples/images/cat.jpg foo


cifar数据集训练的结果识别效果不是很好,准确率较低,这里仅做学习实验用.

ResNet20模型进行测试

ResNet:https://github.com/junyuseu/ResNet-on-Cifar10

下载模型到cifar10下,修改.prototxt文件中的数据集路径



测试:

./build/tools/caffe  test -model res20_cifar_train_test.prototxt -weights ResNet_20.caffemodel -iterations 100 #batch_size为100,所以这里设置迭代次数为100次


最终测试结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: