美文网首页
centos 7 caffe cirfar-10数据集训练及测试

centos 7 caffe cirfar-10数据集训练及测试

作者: 蒜泥狠 | 来源:发表于2017-12-25 18:04 被阅读0次

    简介

    网站链接:CIFAR-10

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

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

    下载数据

    注意:默认用$CAFFE_ROOT表示caffe的根目录。

    输入指令:

    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:整个数据集所有图片的均值文件

    训练数据集

    修改c pu

    先打开train_quick.sh看看.如果使用的是cpu模式,需要到文件中提到的所有prototxt文件中修改solver_mode为cpu;如果使用的是gpu,则不需要更改,默认就已经是gpu模式了。

    #!/usr/bin/env shset-eTOOLS=./build/tools

    $TOOLS/caffe train \

        --solver=examples/cifar10/cifar10_quick_solver.prototxt$@

        # reduce learning rate by factor of 10 after 8 epochs

    $TOOLS/caffe train \

        --solver=examples/cifar10/cifar10_quick_solver_lr1.prototxt \

        --snapshot=examples/cifar10/cifar10_quick_iter_4000.solverstate$@

    输入指令:

    cd $CAFFE_ROOT

    ./examples/cifar10/train_quick.sh

    测试模型

    我们不自己从头写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_5000.caffemodel.h5 --center_only examples/images/cat.jpg foo

    载入的图片是cat.jpg,预测结果如下:

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

    相关文章

      网友评论

          本文标题:centos 7 caffe cirfar-10数据集训练及测试

          本文链接:https://www.haomeiwen.com/subject/rcvlgxtx.html