今天的目标是应用Caffe完成深度进修练习的全过程。Caffe是一款十分有名的深度进修框架,由加州大年夜学伯渴攀利分校的贾扬清博士于2013年在Github上宣布。自那时起,Caffe在研究界和工业界都受到了极大年夜的存眷。Caffe的应用比较简单,代码易于扩大,运行速度获得了工业界的承认,同时还有十分成熟的社区。
对于刚开端进修深度进修的同窗来说,Caffe是一款十分十分合适的开源框架。可其他同类型的框架,它又一个最大年夜的特点,就是代码和框架比较简单,合适深刻了解分析。今天将要介绍的内容都是Caffe中成型良久的内容,如今绝大年夜多半版本的Caffe都包含这些功能。关于Caffe下载和安装的内容请各位根据官方网站指导进行下载和安装,这里就不再赘述了。
一个惯例的监督进修义务重要包含练习与猜测两个大年夜的步调,这里照样以Caffe中自带的例子——MNIST数据集手写数字辨认为例,来介绍一下它具体的应用办法。
如不雅把膳绫擎提到的深度进修练习步调分化得更过细一些,那么这个惯例流程将分成这几个子步调:
- 数据预处理(建立数据库)
- 收集构造与模型练习的设备
- 练习与在练习
- 练习日记分析
- 猜测考验与分析
- 机能测试
下面就来一一介绍。
1. 数据预处理
起首是练习数据和猜测数据的预处理。这里的工作一般是把待分析识其余图像进内行单的预处理,然后保存到数据库中。为什么要完成这一步而不是直接大年夜图像文件中攫取数据呢?因为实际义务中练习数据的数量可能异常大年夜,大年夜图像文件中攫取数据并进行初始化的效力是异常低的,所以很有须要把数据预先保存在数据库中,来加快练习的节拍。
以下的操作将全部在终端完成。第一步是将数据下载到本地,好在MNIST的数据量不算大年夜,如不雅大年夜家的收集情况好,这一步的速度会异常快。起首来到caffe的安装根目次——CAFFE_HOME,然后履行下面的敕令:
- cd data/mnist
- ./get_mnist.sh
法度榜样履行完成后,文件夹下应当会多出来四个文件,这四个文件就是我们下载的数据文件。第二步我们须要调用example中的数据库创建法度榜样:
法度榜样履行完成后,examples/mnist文件夹下面就会多出两个文件夹,分别保存了MNIST的练习和测试数据。值得一提的是,数据库的格局可以经由过程修改脚本的BACKEND变量来改换。今朝数据库有两种主流选择:
- LevelDB
- LmDB
这两种数据库在存储数据和把持上有一些不合,起首是它们的数据组织方法不合,这是LevelDB的内容:
这是LMDB的内容:
大年夜构造可以看出LevelDB的文件比较多,LMDB的文件更为紧凑。
其次是它们的攫取数据的接口,某些场景须要遍历数据库完成一些原始图像的分析处理,是以懂得它们的数据攫取办法也十分有须要。起首是LMDB攫取数据的代码:
其次是LevelDB攫取的代码:
最后回到本末节的问题:为什么要采取数据库的方法存储数据而不是直接攫取图像?这里可以简单测试一下用MNIST数据构建的┞封两个数据库按序攫取的速度,这里用体系函数time进行计时,结不雅如下:
为了比较原始图像读入的速度,这老将MNIST的数据以jpeg的格局保存成图像,并测试它的攫取效力(以Caffe python应用的scikit image为例),代码如下所示:
最终的时光如下所示:
由此可以看出,原始图像和数据库比拟,攫取数据的效力差距照样蛮大年夜的。固然在Caffe练习中数据读入是异步完成的,然则它照样不克不及够太慢,所以这也是在练习时选择数据库的原因。
至于这两个数据库之间的比较,这里就不再多做了。感兴趣的各位可以在一些大年夜型的数据集上做一些实验,那样更轻易看出两个数据集之间的差别。
2. 收集构造与模型练习的设备
上一节完成了数据库的创建,下面就要为练习模型做预备了。一般来说Caffe采取读入设备文件的方法进行练习。Caffe的设备文件一般由两部分构成:solver.prototxt和net.prototxt(有时会有多个net.prototxt)。它们实际上对应了Caffe体系架构中两个十分关键的实体——收集构造Net和求解器Solver。先来看看一般来说相对简短的solver.prototxt的内容,为了便利大年夜家懂得,所有设备信息都已经参加了注释:
推荐阅读
(机械进修是一个大年夜范畴。本文侧重的范畴是深度进修——这是我最熟悉的一个分区。)在研究兴趣方面,我们看到的是 1)风格转换、2) 深度强化进修、3) 神经收集机械翻译 (&ldqu>>>详细阅读
本文标题:Caffe的深度学习训练全过程
地址:http://www.17bianji.com/lsqh/34962.html
1/2 1