【深度学习】笔记4_caffe第二个比较经典的[小图片]识别例子CIFAR_10的运行,网络模型的详解
2016-10-31 13:24
881 查看
/********************************************************************************************** *文件说明: * [深度学习笔记4] * 1---运行caffe第二个比较经典的例子CIFAR10 * 2---分析cifar_10这个例子所使用的CNN网络模型 * 3---这个例子如何进行推广和扩展 *运行环境: * UBUNTU14.04+caffe+python可视化接口 *时间地点: * 陕西师范大学----2016.10.31 *参考资料: * 1---http://caffe.berkeleyvision.org/gathered/examples/cifar10.html * 2---http://www.cs.toronto.edu/~kriz/cifar.html (二进制数据库) * 3---http://groups.csail.mit.edu/vision/TinyImages/ (图片数据库) **********************************************************************************************/ (一)CIFAR-10简述 CIFAR-10是什么? Cifar-10是由Hinton的两个大弟子Alex Krizhevsky和Ilya Sutskever收集的一个用于普通物体识别的数据集。 CIFAR是由加拿大牵头投资的一个先进的科学项目研究所.Hinton和Bengio以及他的学生在2004年拿到了CIFAR项目投 资的少量资金.建立了神经计算和自适应感知项目. 这个项目集结了不少的科学家,生物学家,电气工程师,神经科学家,物理学家,心理学家,加速推动了DL的进程. 从这个阵容来看,DL和ML系列的数据挖掘分的已经很远了.DL强调的是自适应感知和人工智能,是计算机与神经科学交叉 的一个学科.而ML强调的是高速,大数据,统计数学分析,是计算机和数学的交叉. (二)cifar-10数据集简介: 参考资料:http://www.cs.toronto.edu/~kriz/cifar.html 1---CIFAR-10(DataSet)这个数据集总共包含:60000张图片 1---图片size:32pixel*32pixel 2---图片深度:三通道RGB的彩色图片 2---这60000张图片: 1---共分为10类,具体的分类如下图所示: 2---60000张图片里面有: 1--50000张训练样本 2--10000张测试样本(验证Set) 3---记住: 1---CIFAR-10:是一个[普通物体]识别的数据集 2---因此,这个数据集和网络模型的最大特点就是:可以很容易的将[物体识别]迁移到其他普通的物体 3---而且可以将10分类问题扩展至100类物体的分类,甚至1000类和更多类的物体分类(当然,需要你们 有更多的GPU和DataSet)
4---注意的一点是: 这个示例中的数据集存在一个L 1---10000*3072的numpy的数组中------10000张图片*每张图片的像素数组 2---单位是uint8s 3---3072存储了一个32*32的彩色图片(3*32*32==3*1024==3072) 4---numpy的前1024位是RGB中的R分量像素值,中间的1024位是G分量的像素值,最后的1024是B分量 的像素值 5---最后注意的一点是: CIFAR-10这个例子只能用于[小图片]的分类,正如前面讲的Mnist示例,主要用于[手写数字的识别一样]
(三)CIFAR-10所使用的卷积神经CNN的网络模型 1---DL的两大核心:数据+模型,上面,我们比较详细的讲述了CIFAR-10所使用的数据集(DataSet),下面我们来 看看CIFAR-10所使用的网络Net模型吧 2---该模型在caffe中的描述配置文件为:cifar10_quick_train_test.prototxt 3---该文件所在的位置:/home/wei/caffe/examples/cifar10/cifar10_quick_train_test.prototxt,如下 图所示:
4---该CNN-NET主要由:卷积层,POOLing层,非线性变换层,局部对比归一化线性分类器组成#(四)CIFAR10示例的具体操作运行过程:
1--下载数据集 执行下面的命令:sudo sh ./data/cifar10/get_cifra10.sh 如下图所示:
下载过程如下所示:
下载成功之后,在/home/wei/data/cifar10/文件目录下会看到以下的二进制文件数据:
2--将刚才下载下来的[二进制数据集文件]转换成[caffe所识别的LMDB或者LevelDB格式的数据库形式],并且计算 数据集的均值文件 1---数据格式的转化和计算均值所需要使用的所有的shell命令都被写在了一个shell脚本中,所以我们只需 要运行这个shell脚本就可以了,这个shell脚本在:/home/wei/examples/cifar10/文件夹下,名字为: create_cifar10.sh 2--使用下面的命令:sudo sh ./examples/cifar10/create_cifar10.sh
3--下载成功之后,会在/home/wei/caffe/examplse/cifar10/目录下生成三个文件(如下图所示): 1--cifar10_train_lmdb--------训练样本数据集 2--cifar10_test_lmdb---------测试样本数据集 3--mean.binaryproto----------数据集的均值文件(用于减均值操作)
(五)训练和测试网络模型 在这个阶段,寻妖准备三个文件: 1---网络模型配置文件:cifar10_quick_train_test.prototxt 2---超参数配置文件solver:cifar10_quick_solver.prototxt 3---训练脚本文件:train_quick.sh 1--建立训练上面数据的网络模型,当然在这个例子中,caffe已经为我们创建好了,那就是/home/wei/caffe/examples/ cifar10/文件夹下面的:cifar10_quick_train_test.prototxt 2---配置参数设置solver文件,当然caffe也已经为我们准备好了,这个文件位于/home/wei/caffe/examples/cifar10/ 文件夹下面的:cifar10_quick_solver.prototxt 3---编写训练模型的shell脚本文件:train_quick.sh 4---由于我使用的CPU没有GPU,所以还要改cifar10_quick_solver.prototxt配置文件的最后一项:将GPU改为CPU
准备好数据+模型+参数配置solver文件之后,执行下面的命令: sudo ./examples/cifar10/train_quick.sh
训练的过程如下所示:
其中,每迭代100次,显示一次训练时的lr(learning rate)和loss(训练损失函数),每过500次,输出score 0(准确率) 注意: 训练完成后,训练好的模型参数存储在二进制protobuf格式的文件中,CIFAR10训练好的模型存储在:/home/wei/ caffe/examples/cifar10/文件夹低下,名字为:cifar10_quick_iter_5000
最后,总结一下训练一个网络用到的相关文件: cifar10_quick_solver.prototxt:方案配置,用于配置迭代次数等信息,训练时直接调用caffe train指定这个文件,就会开始训练 cifar10_quick_train_test.prototxt:训练网络配置,用来设置训练用的网络,这个文件的名字会在solver.prototxt里指定 cifar10_quick_iter_4000.caffemodel.h5:训练出来的模型,后面就用这个模型来做分类 cifar10_quick_iter_4000.solverstate.h5:也是训练出来的,应该是用来中断后继续训练用的文件 cifar10_quick.prototxt:分类用的网络
相关文章推荐
- 【caffe学习】caffe第二个比较典型的识别例子CIFAR_10的运行详解
- 【深度学习】笔记6:使用caffe中的CIFAR10网络模型和自己的图片数据训练自己的模型(步骤详解)
- 【深度学习】笔记3_caffe自带的第一个例子,Mnist手写数字识别所使用的LeNet网络模型的详细解释
- 【深度学习】笔记2_caffe自带的第一个例子,Mnist手写数字识别代码,过程,网络详解
- caffe19 《深度学习--Caffe之经典模型详解与实战》笔记01 分类测试python调用
- 《深度学习--Caffe之经典模型详解与实战》pyhon编写手写字识别脚本-1(jetson TX2)
- 【深度学习】笔记7: CNN训练Cifar-10技巧 ---如何进行实验,如何进行构建自己的网络模型,提高精度
- 深度学习Caffe实战笔记(8)模型参数详解(补充)
- caffe典型识别示例CIFAR_10的运行详解
- 机器深度学习笔记(1)——神经网络从一张图片中识别狗的过程
- 深度学习Caffe平台实例——CIFAR-10数据集在caffe平台上模型训练及实例使用模型进行预测
- 深度学习caffe实战笔记(4)Windows caffe平台下跑cifar10
- 【神经网络与深度学习】基于Windows+Caffe的Minst和CIFAR—10训练过程说明
- 深度学习Caffe实战笔记(8)模型参数详解(补充)
- 【深度学习】caffe简易上手指南(一)—— 运行cifar例子
- 【深度学习】针对CIFAR-10模型所写的进行图片size,图片名,后缀图片格式写的预处理程序
- Windows Caffe 学习笔记(一)训练和测试CIFAR-10数据集
- 深度学习Caffe实战笔记(10)Windows Caffe使用MATLAB接口提取和可视化特征
- 【深度学习】笔记5_caffe数据层参数的详解
- 深度学习框架Caffe学习笔记(4)-MNIST数据集转换成可视化图片