深度学习框架caffe的学习

上传人:宝路 文档编号:21427501 上传时间:2017-11-23 格式:DOCX 页数:7 大小:362.62KB
返回 下载 相关 举报
深度学习框架caffe的学习_第1页
第1页 / 共7页
深度学习框架caffe的学习_第2页
第2页 / 共7页
深度学习框架caffe的学习_第3页
第3页 / 共7页
深度学习框架caffe的学习_第4页
第4页 / 共7页
深度学习框架caffe的学习_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《深度学习框架caffe的学习》由会员分享,可在线阅读,更多相关《深度学习框架caffe的学习(7页珍藏版)》请在金锄头文库上搜索。

1、深度学习框架 caffe 的了解摘要:caffe 是贾扬清开发的一个清晰,可读性高,快速的深度学习开源框架,目前已经的到了广泛的应用。本人基于 Ubuntu14.04 64bit 操作系统、 caffe 框架以及一些依赖软件,对 caffe 安装以及使用进行了成功实验。本文就实验的整个实验过程以及实验结果进行描述。关键词:caffe、深度学习、开源框架1 caffe的安装尽管 caffe 目前取得了较为广泛的应用,但其运行环境搭建对于初学者来说仍然是一个复杂繁琐的过程。此部分将详细描述 caffe 在单机安装的整个过程,并附上相关图片。1.1 硬件配置及操作系统本实验用的电脑为普通个人电脑,硬

2、件配置参数为:Intel(R) Core(TM) i5-3230M CPU 2.60GHz 4GB RAM。操作系统采用官网推荐的操作系统 Ubuntu14.04,安装磁盘空间为100GB。1.2 安装依赖软件依赖库安装。caffe 的依赖软件包括一些使用到的函数库,包括 libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libboost-all-dev。其中boost 库的版本需要安装 v1.55 或以上版本。可在控制台运行如下命令进行安装:sudo

3、apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev工具安装。其次是安装一些必要工具,包括 git、cmake ,采用如下命令安装:sudo apt-get install cmake gitgoogle-glog 安装。google-glog 根据官方提供的方法可以直接运行如下命令进行安装,但由于网络限制,采用官方给定的方式将不能下载 google-glog。本实验在其它网站下载google-glog 的压缩包 glog-0.

4、3.3.tar.gz 之后进行安装的。gflags 的安装方式类似,以下是安装需要用到的命令。# glogtar zxvf glog-0.3.3.tar.gzcd glog-0.3.3./configuremake & make install# gflagsunzip master.zipcd gflags-mastermkdir build & cd buildexport CXXFLAGS=-fPIC & cmake . & make VERBOSE=1make & make installlmdb 的安装。caffe 最初支持 leveldb 和 lmdb 两种数据格式的文件,但由于

5、lmdb 的读取速度要比 levaldb 的读取速度快 1.5 倍,caffe 后来的版本仅仅支持 lmdb 数据格式的文件。lmdb 存储引擎是一个开源的工具,可采用 git 在 github 上直接下载安装。# lmdbgit clone https:/ lmdb/libraries/liblmdbmake & make install安装 Atlas。Atlas 是一个免费的矩阵函数库,可用付费的 Intel MKL 代替。sudo apt-get install libatlas-base-dev到此为止相关依赖工具的安装已经完成,次部分工具的安装比较简单,基本不会出现安装错误。1.3

6、 安装 OpenCVOPenCV 在各个平台的安装配置都比较麻烦,为简化操作,提高安装成功的概率,本实验采用脚本进行安装。安装脚本可通过 git 在 github 下载。下载命令如下:git clone :bearpaw/Install-OpenCV.git下载完成之后进入文件夹(如图 1.1),可以找到多个版本的安装脚本,本实验采用的时 2.4.10 版本,运行命令./opencv2_4_10.sh 进行安装。若脚本不可执行(.sh 文件的颜色非绿色),需要执行 chmod +x *.sh 赋予这些.sh 文件可执行权限。图 1.1以上是 caffe 安装的整个过程,本人曾尝试安装 GPU

7、驱动,但未能安装成功,在此不再叙述,下面数据集的训练采用的时 CPU,未使用 GPU。1.4 caffe安装caffe 压缩包直接通过 git 下载,git clone :BVLC/caffe.git,下载完成之后进入 caffe 主目录,执行以下命令编译 caffe。其中后面的 j4 参数表示用个线程进行编译,可加快编译速度。make all -j4make testmake runtest编译完成之后会给出如下提示信息(图 2.1),此时即可使用 caffe 训练数据集。图 1.22 mnist数据集的训练根据官方文档,在训练模型之前需要将训练的图片转化为 lmdb 格式的数据集再进行训练

8、。本实验直接使用已经转化好的 lmdb 数据集 mnist 进行训练和测试。mnist 是一个手写数字图片的数据集,里面包含了 60000 张训练库图片和 10000 张测试库图片。2.1 mnist数据集的获取mnist 数据集可以在官网下载或者直接运行命令脚本文件下载,本实验通过运行脚本下载,脚本位于$CAFFE/data/mnist 目录下。进入该目录执行命令./get_mnist.sh 即可下载。脚本下载完成之后会自动解压缩,生成个数据包(图 2.1)。图 2.12.2 mnist数据集格式转换前面提到数据包需要转换成 lmdb 数据格式之后才能训练与测试,caffe 官方的 mnis

9、t 的例子中提供了工具格式转换工具编写好了脚本。本实验先将个数据包拷贝到$CAFFE/examples/mnist 目录下(和转换脚本 create_mnist.sh 处于同一目录)。然后执行./create_mnist.sh 生成讲数据包转换成 lmdb 格式的数据集,转换成功的话会在$CAFFE/examples/mnist 目录下生成两个文件夹(如图 2.2),mnist_test_lmdb 和mnist_train_lmdb,分别包含训练数据集与测试数据集。图 2.22.3 基于 mnist数据集数字模型的训练与测试mnist 数据集采用 LeNet 网络来进行训练,大量实验表明 Le

10、Net 网络是训练手写内容识别模型的最佳网络模型。在训练之前,可根据需要对全局参数配置文件lenet_solver.prototxt(内容如图 2.3)进行修改。参数 net 指明了训练用到的网络模型的定义文件,这里选用的是 lenet 网络其它参数的设置以及其值的含义可参照$CAFFE/src/caffe/proto/caffe.proto 文件。本实验由于没有用到 CPU,因此只更改了solver_mode 参数,将参数该成了 CPU。# solver mode: CPU or GPUsolver_mode: CPU图 2.3配置完成之后,执行命令./build/tools/caffe t

11、rain -solver=examples/mnist/lenet_solver.prototxt 或者运行$CAFFE/examples/mnist 目录下的脚本./examples/mnist/train_lenet.sh 即可开始训练。采用 CPU 进行训练的时间大概为 20 分钟(最多迭代 10000 次),若采用 GPU 训练时间会更少。训练过程中会出现如下的内容,每迭代 500 次进行次测试,当达到预期精度或者达到训练上限时结束训练。I0614 00:40:08.291082 7064 sgd_solver.cpp:106 Iteration 100, lr = 0.0099256

12、5I0614 00:40:17.023165 7064 solver.cpp:228 Iteration 200, loss = 0.143513I0614 00:40:17.023233 7064 solver.cpp:244 Train net output #0: loss = 0.143513 (* 1 = 0.143513 loss)I0614 00:40:17.023252 7064 sgd_solver.cpp:106 Iteration 200, lr = 0.00985258I0614 00:40:25.631428 7064 solver.cpp:228 Iteration

13、 300, loss = 0.162749I0614 00:40:25.631542 7064 solver.cpp:244 Train net output #0: loss = 0.162749 (* 1 = 0.162749 loss)I0614 00:40:25.631561 7064 sgd_solver.cpp:106 Iteration 300, lr = 0.00978075I0614 00:40:34.705716 7064 solver.cpp:228 Iteration 400, loss = 0.0588523I0614 00:40:34.705777 7064 sol

14、ver.cpp:244 Train net output #0: loss = 0.0588523 (* 1 = 0.0588523 loss)当然,我们也可以直接对训练好的模型进行单独测试,执行如下命令./build/tools/caffe test -solver=examples/mnist/lenet_solver.prototxt 3. caffe的应用实例 识别一张图片训练模型的最终目的是应用训练好的模型去识别图片,为用户提供识别结果,本实验通过一个 C+程序,传入一张图片,使用 caffe 模型识别图片并打印出识别结果。3.1 模型的获取训练好的模型来源于 Caffe Model

15、 Zoo 执行脚本可下载训练好的模型 ./scripts/download_model_binary.py models/bvlc_reference_caffenet执行脚本./data/ilsvrc12/get_ilsvrc_aux.sh可以下载训练所用标签文件。3.2 图像的识别在网上下载一张动物图片(图 3.1),通过图片可直观的看出它是一只狗,通过编译好的程序调用此图片,调用命令如下:./build/examples/cpp_classification/classification.bin models/bvlc_reference_caffenet/deploy.prototxt

16、 models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel data/ilsvrc12/imagenet_mean.binaryproto data/ilsvrc12/synset_words.txt examples/images/dog.jpg图 3.1程序运行结束之后输出如下内容(图 3.2),程序按照匹配程度输出了格标签的内容,分别是博美犬、威尔士柯基犬、碟耳长毛玩赏小狗、吉娃娃(一种产于墨西哥的狗),最后一项是本人为确定标签内容来源人为加上去的。结果显示,该模型准确的识别了该图片的信息。图 3.2 小结以上内容为本人对 caffe 的了解过程,整 个过程基本在单机上搭建好了 caffe 运行的环境

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号