简介

网站链接:CIFAR-10
CIFAR-10数据集包括由10个类别的事物,每个事物各有6000张彩色图像,每张图片的大小是32*32。
整个数据集被分成了5个训练集和1个测试集,各有10000张图片,即50000张图片用于训练,10000张图片用于测试(交叉验证)。

下载数据

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

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

随后,会自动下载数据。
如果嫌下载速度慢,可以自己手动下载,再进行自己解压放到对应目录下。
从get_cifar10.sh文件中可以找到url:
http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz

打开get_cifar10.sh:

#!/usr/bin/env sh
# This scripts downloads the CIFAR10 (binary version) data and unzips it.DIR="$( cd "$(dirname "$0")" ; pwd -P )"
cd "$DIR"echo "Downloading..."wget --no-check-certificate http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gzecho "Unzipping..."tar -xf cifar-10-binary.tar.gz && rm -f cifar-10-binary.tar.gz
mv cifar-10-batches-bin/* . && rm -rf cifar-10-batches-bin# Creation is split out because leveldb sometimes causes segfault
# and needs to be re-created.echo "Done."

下载完成后,$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

随后就会开始训练。
先打开train_quick.sh看看

#!/usr/bin/env sh
set -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 $@

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

使用gpu模式很快就训练好了。

最后训练完时的准确率是75%左右,效果并不是很好。

测试模型

测试时用到了caffe的python接口,所以一定要先编译并配置好了好了pycaffe。如果没有配置好,请先配置好。我以前的博客有讲过如何linux下搭建caffe,最后讲了如何安装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 resultlabelNums = 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 = ielse:if maxPrediction < predictions[0][i]:maxIndex = imaxPrediction = 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,预测结果如下:

我另外从百度随便下了几张图片来测试:
输入指令(根据自己的图片的文件名改下就可以了):

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/cat2.jpg foo


哈士奇居然被识别成猫了,但是我承认这张图片的哈士奇的确不太像“狗”。


汽车

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

caffe学习(五):cifar-10数据集训练及测试(Ubuntu)相关推荐

  1. Caffe学习笔记3——制作并训练自己的数据集

    Caffe学习笔记3 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和h ...

  2. 深度学习入门 FashionMNIST数据集训练和测试(30层神经网路)

    使用pytorch框架.模型包含13层卷积层.2层池化层.15层全连接层.为什么叠这么多层?就是玩. FashionMNIST数据集包含训练集6w张图片,测试集1w张图片,每张图片是单通道.大小28× ...

  3. CIFAR10数据集训练及测试

    一.数据集介绍 该数据集共有60000张彩色图像,这些图像是32*32,分为10个类,每类6000张图.这里面有50000张用于训练,构成了5个训练批,每一批10000张图:另外10000用于测试,单 ...

  4. yolo-v2 自己的数据集训练以及测试流程(仅供内部使用!)

    warning 该流程仅供内部使用,外部人士使用可能会报很多很多错误! 步骤 先清除backup文件夹中老的权重文件: 将标定好图片以及annotation .txt文件拷贝到obj文件夹,一一对应, ...

  5. 深度学习入门——利用卷积神经网络训练CIFAR—10数据集

    CIFAR-10数据集简介 CIFAR-10是由Hinton的学生Alex Krizhevsky和Ilya Sutskever整理的一个用于普适物体的小型数据集.它一共包含10个类别的RGB彩色图片: ...

  6. Caffe学习系列(20):用训练好的caffemodel来进行分类

    caffe程序自带有一张小猫图片,存放路径为caffe根目录下的 examples/images/cat.jpg, 如果我们想用一个训练好的caffemodel来对这张图片进行分类,那该怎么办呢? 如 ...

  7. Caffe学习 五 conv_layer与im2col

    1.BaseConvolutionLayer & ConvolutionLayer 成员变量 注释引用自caffe代码阅读10:Caffe中卷积的实现细节(涉及到BaseConvolution ...

  8. 深度学习(五):FastFCN代码运行、测试与预测

    目录 0 前言 1 环境配置 1.1 安装python包 1.2 下载detail-api 1.3 运行prepare_pcontext.py 1.4 运行 prepare_ade20k.py 2 训 ...

  9. Ubuntu下caffe:用自己的图片训练并测试AlexNet模型

    目录 1.准备图片 2. 将 图片路径写入txt 参考 这篇文章 3.转换格式 还是参考这篇文章 4.训练模型 参考这篇 参考这篇 参考这篇 5.测试模型 看过这篇转换均值文件 看过这篇 ------ ...

最新文章

  1. [Recompose] Pass a React Prop to a Stream in RxJS
  2. php学习之------[运算符相关概念]
  3. 第三方模块config的使用
  4. 蔡先生论道大数据之八: 让他在看小说的时候, 看到喜欢的汽车
  5. 使用python的笔记
  6. 小tips:JS语法之标签(label)
  7. 神经网络激活函数与损失函数
  8. 【软件】一个简单好用的取色器TakeColor(百度云免费下载链接)
  9. SQLServer数据库可疑的解决方法
  10. 联想笔记本腾讯会议摄像头灰屏或黑屏问题解决
  11. 软件开发的8大主流方法介绍
  12. 电气规则检查-ERC
  13. 海贼王热血航线服务器维护4月,航海王热血航线4月29日停服公告一览
  14. diy 扫地机器人 滚刷_滚刷结构及扫地机的制作原理
  15. PanDownload 复活了!60MB/s!附下载地址
  16. 实现链表的插入——头插/尾插
  17. 航班信息检索与查询(基数排序)
  18. 电梯控制技术综合实训装置QY-DT721
  19. 023 A转置矩阵=A的性质(三大性质)
  20. php不显示notice,解决PHP显示Warning和Notice等问题

热门文章

  1. 前端综合能力系列之git与gitflow
  2. C# 索引器(Indexer)
  3. 基于 OSGi 的面向服务的组件编程
  4. JavaScript 常用函数
  5. 我为何爱读代码?你为何也应当爱?
  6. 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机图形学与多媒体
  7. 程序员面试题精选100题(60)-判断二叉树是不是平衡[数据结构]
  8. Sed教程(二):基本语法、循环、分支
  9. Scala基础教程(二):数据类型、变量
  10. 编程之美-求数组中最长递增子序列(LIS)方法整理