CAFFE学习笔记(一)Caffe_Example之训练mnist

0、参考文献

[1]caffe官网《Training LeNet on MNIST with Caffe》; 
[2]薛开宇《读书笔记4学习搭建自己的网络MNIST在caffe上进行训练与学习》([1]的翻译版,同时还有作者的一些注解,很赞);

1、*.sh文件如何执行?

①方法一:有sh后缀名的是linux脚本文件,在windows下为了执行这个文件,应该下载Git。然后对于sh文件右键,打开方式,选择git-bash.exe。 
②方法二:直接将后缀名改成“bat”然后双击。

2、如何载入MNIST数据并且开始训练?

(1)首先明确我们需要设定两个重要的prototxt文件,它们分别是CAFFE_ROOT/examples/mnist下的lenet_train.prototxt和lenet_solver.prototxt。 
(2)在lenet_train.prototxt中: 
①在此给出用于训练的MNIST数据mnist-train-leveldb以及mnist-test-leveldb的路径; 
②在此定义这个网络都有哪些层,给出每一层的定义。 
(3)在lenet_solver.prototxt中: 
①在此指明我们要训练的网络是lenet_train.prototxt,给出lenet_train.prototxt的路径; 
②在此指定是用CPU还是GPU。 
(4)在CAFFE_ROOT/examples/mnist下找到sh文件train_lenet.sh,在里面给出: 
①caffe编译后生成的可执行文件exe的名称(带不带“.exe”都可以),后面跟“train”代表选择“训练”; 
②刚才写好的lenet_solver.prototxt的路径。 
然后双击执行该脚本文件即可。

3、关于路径

如2中所述,在这两个prototxt和一个sh文件中,都要指明一些文件的路径。现总结如下: 
(1)lenet_train.prototxt中:训练集mnist-train-leveldb与测试集mnist-test-leveldb的路径; 
(2)lenet_solver.prototxt中:3-(1)的prototxt文件lenet_train.prototxt的路径; 
(3)train_lenet.sh中:caffe可执行文件exe名称,以及3-(2)的prototxt文件lenet_solver.prototxt的路径。

4、能够让程序跑起来的设置方法(法一)

(1)在CAFFE_ROOT/x64/Debug中,新建一个文件夹example2,使该文件夹与可执行文件Caffe.exe处于同一路径中; 

不要管examples和myexamples,这两个文件夹是师兄拷给我的时候就有了的,一个是caffe自带的,一个是师兄做的实验。总而言之与example2是独立关系。

(2)将刚才CAFFE_ROOT/examples/mnist下的mnist-test-leveldb、mnist-train-leveldb、lenet_train_test.prototxt以及lenet_solver.prototxt这四个文件全部拷贝到example2中去。 

(3)设定prototxt文件,给出相应的路径。 
①lenet_train_test.prototxt 
这个文件即之前说的lenet_train.prototxt,为了便于区分在后面加了一个_test。给出相对路径如下: 

此处给出绝对路径也是可以的。如: 

②lenet_solver.prototxt 
设置相对路径: 

这里给出绝对路径也是可以的。如: 

(4)将CAFFE_ROOT/examples/mnist下的train_lenet.sh文件拷贝到CAFFE_ROOT/x64/Debug中,使之与可执行文件Caffe.exe以及example2处于同一目录下。 

打开train_lenet.sh文件,修改内容如下: 
 
修改该文件后缀名为bat,双击train_lenet.bat,则可以成功跑起来。 

5、能够让程序跑起来的设置方法(法二)

这一次我们不再新建example2,亦不改动sh文件后缀名为bat,而是直接在CAFFE_ROOT/examples/mnist下修改两个prototxt文件和一个sh文件。这种方法更加简单直接,但是要注意保存prototxt文件备份以免写坏了改不回去。 
关于这两个prototxt文件如何设置路径在此不赘述。我直接给出设置截图如下: 
lenet_train_test.prototxt: 

lenet_solver.prototxt: 

接下来设置sh文件train_lenet.sh: 

设定完毕后,双击sh文件,则可以出现如下结果: 

6、总结

(1)在设置一些文件的路径时,可以给出绝对路径,也可以给出相对路径。 
(2)在使用train_lenet.sh训练时,可以直接使用sh文件跑起来,也可以修改后缀名为bat然后跑程序。 
(3)本文仅仅针对于如何“训练网络”展开,至于如何开启测试模式test对已经训练好网络进行测试,目前还没有进行这个实验,等之后做好了会更新文章的。

时间: 2024-10-12 17:32:26

CAFFE学习笔记(一)Caffe_Example之训练mnist的相关文章

CAFFE学习笔记(五)用caffe跑自己的jpg数据

1 收集自己的数据 1-1 我的训练集与测试集的来源:表情包 由于网上一幅一幅图片下载非常麻烦,所以我干脆下载了两个eif表情包.同一个表情包里的图像都有很强的相似性,因此可以当成一类图像来使用.下载个eif解压包可以把eif文件解压成gif和jpg格式的文件,然后删除gif文件,只留下jpg格式的文件,这些图就是我的训练集与测试集了. 1-2 使用rename批量重命名图像 (1)对于一个存放了图像src.jpg的文件夹ROOT,在ROOT中新建一个test.txt文件,在里面写下"renam

CAFFE学习笔记(四)将自己的jpg数据转成lmdb格式

1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验证识别效果又当如何呢? 观察CAFFE_ROOT/examples/mnist/下的lenet_train_test.prototxt文件,发现里面既给出了训练集的路径,又给出了测试集的路径.因此答案很显然了,我们可以把自己的测试集做成leveldb(或lmdb)格式的,然后在lenet_train

Caffe学习笔记

Caffe学习笔记 Caffe Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by the Berkeley Vision and Learning Center (BVLC) and by community contributors.Yangqing Jia created the project during his PhD at

Caffe学习笔记3

Caffe学习笔记3 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing http://caffe.berkeleyvision.org/gathered/examples/feature_extraction.html 这篇博客主要是用imagenet的一个网络模型来对自己的图片进行训练和测试 图片下载网

Caffe 学习笔记目录

版权声明:本文为hanahimi原创及转载文章,转载请附上链接…… 一点点更新中... 目录: 安装.配置与测试 buildtools学习 Tutorial 学习 pyCaffe 学习 Caffe源码学习 相关实例 安装.配置与测试 在windows上安装caffe (GPU) 使用caffe-windows 生成数据文件 运行caffe-windows 的demo 配置caffe + cuDNN buildtools学习 Caffe 学习:convert_imageset Caffe 学习:c

caffe学习笔记(十三)caffe图形化操作工具digits的使用

运行digits cd caffe/xsh_digist/digist ./digits-devserver 运行mnist实例 现在来运行一个实例:mnist(名符其实的helloworld) 原始数据需要的是图片,但网上提供的mnist数据并不是图片格式的数据,因此我们需要将它转换成图片才能运行. digits提供了一个脚本文件,用于下载mnist, cifar10 和cifar100 三类数据,并转换成png格式图片.文件路径为: /usr/share/digits/tools/downl

caffe学习笔记(一),ubuntu14.04+GPU (用Pascal VOC2007训练数据,并测试)

把源代码跑起来了,将实验过程记录如下,用于新手入门. 今天和师兄师姐才跑通,来分享下心得.(预训练网络:ImageNet,训练集:PASCAL VOC2007, GPU) 首先,整个train and test过程不是唯一的,理解的越深才能越熟练. 下来,进入正题: 1.git clone源代码.一定要选recursive模式.(否者caffe这个包不在源代码里,编译会报错) 2.进入lib文件夹,make一下下. 3.下来在caffe的目录下,cp Makefile.config.exampl

caffe学习笔记3.1 -- caffe的三级结构

在caffe教程中,介绍了caffe的三级结构:Blobs, Layers,Nets.如下图所示: 深度网络是一个复杂的模型,caffe定义了一个层与层之间连接的网络模型.这个网络定义了从输入层到损失的所有模型.caffe使用blobs结构存储,交换和处理网络中正向和反向迭代时的数据和导数信息,blob是Caffe的标准数组结构,它提供了一个统一的内存接口.Layer是Caffe模型和计算的基本单元.Net是一系列的Layer和其连接的集合,Blob详细描述了信息是如何在Layer和net中存储

Tensorflow学习笔记(一):MNIST机器学习入门

学习深度学习,首先从深度学习的入门MNIST入手.通过这个例子,了解Tensorflow的工作流程和机器学习的基本概念. 一  MNIST数据集 MNIST是入门级的计算机视觉数据集,包含了各种手写数字的图片.在这个例子中就是通过机器学习训练一个模型,以识别图片中的数字. MNIST数据集来自 http://yann.lecun.com/exdb/mnist/ Tensorflow提供了一份python代码用于自动下载安装数据集.Tensorflow官方文档中的url打不开,在CSDN上找到了一