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张图片用于测试(交叉验证)
下载数据
下载完成后,$CAFFE_ROOT/data/cifar10下多出了一些文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/12/e65ce64df1c40d6574f659742e376e0b)
训练集:
这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
图片格式转换
之后会在目录下生成三个文件:
cifar10_test_lmdb:测试集的lmdb文件
cifar10_train_lmdb:训练集的lmdb文件
mean.binaryproto:整个数据集所有图片的均值文件
训练数据集
如果使用的是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:
在图中所示位置添加一行代码,目的是修改均值计算错误 :
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/12/4156796f5af70e4c115c8744aace4c06)
将预测的结果打印出来:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/12/eb90f20e373cd513c28524a0d0dae9bf)
添加如下代码到最后,目的是将结果排序,并找到对应的是什么:
修改完就可以来测试了,caffe在$CAFFE_ROOT/examples/images下有一些图片:
cifar数据集训练的结果识别效果不是很好,准确率较低,这里仅做学习实验用.
ResNet20模型进行测试
ResNet:https://github.com/junyuseu/ResNet-on-Cifar10
下载模型到cifar10下,修改.prototxt文件中的数据集路径
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/12/e6567f20179c93e5f31749c2aa92d733)
测试:
最终测试结果:
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次
最终测试结果:
相关文章推荐
- matconvnet环境下训练自己的数据集及模型测试-mnist网络结构-cifar10部分数据集
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-1.制作自己的数据集
- tensorflow训练自己的数据集实现CNN图像分类2(保存模型&测试单张图片)
- caffe 学习笔记-模型训练与测试
- fcn模型训练及测试
- Caffe用训练好的模型测试图片
- 使用caffe训练并且测试一个自己的模型
- (2) 用DPM(Deformable Part Model,voc-release4.01)算法在INRIA数据集上训练自己的人体检测模型
- 用训练好的caffe模型来测试样本
- Caffe初试(三)使用caffe的cifar10网络模型训练自己的图片数据
- caffe Resnet-50模型训练及测试
- DPM检测模型 训练自己的数据集 读取接口修改
- 利用caffe训练好的模型测试自己的手写字体图片
- CVPR2017-如何在无标签数据集上训练模型
- caffe利用训练好的模型进行实际测试
- caffe配置:自己训练模型并测试
- tensorflow如何使用训练好的模型做测试
- FCN制作自己的数据集、训练和测试全流程
- 使用caffe训练并且测试一个自己的模型
- 用训练好的caffe模型来测试样本