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对已经训练好网络进行测试,目前还没有进行这个实验,等之后做好了会更新文章的。

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

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

    1 收集自己的数据 1-1 我的训练集与测试集的来源:表情包 由于网上一幅一幅图片下载非常麻烦,所以我干脆下载了两个eif表情包.同一个表情包里的图像都有很强的相似性,因此可以当成一类图像来使用.下载 ...

  2. Caffe学习笔记(三):Caffe数据是如何输入和输出的?

    Caffe学习笔记(三):Caffe数据是如何输入和输出的? Caffe中的数据流以Blobs进行传输,在<Caffe学习笔记(一):Caffe架构及其模型解析>中已经对Blobs进行了简 ...

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

    1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验 ...

  4. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  5. Caffe学习笔记(一):Caffe架构及其模型解析

    Caffe学习笔记(一):Caffe架构及其模型解析 写在前面:关于caffe平台如何快速搭建以及如何在caffe上进行训练与预测,请参见前面的文章<caffe平台快速搭建:caffe+wind ...

  6. Caffe学习笔记4图像特征进行可视化

    Caffe学习笔记4图像特征进行可视化 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit201 ...

  7. Caffe学习笔记3

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

  8. Caffe 学习笔记1

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

  9. Caffe学习笔记(二):Caffe前传与反传、损失函数、调优

    Caffe学习笔记(二):Caffe前传与反传.损失函数.调优 在caffe框架中,前传/反传(forward and backward)是一个网络中最重要的计算过程:损失函数(loss)是学习的驱动 ...

  10. Caffe学习笔记2

    Caffe学习笔记2-用一个预训练模型提取特征 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hi ...

随机推荐

  1. 项目笔记:导出XML和导出全部XML功能

    前台代码: //导出一条Xml function btn_createXml(){ var title =$("#editButton").attr("title&quo ...

  2. 【Hadoop】Hadoop MR 自定义分组 Partition机制

    1.概念 2.Hadoop默认分组机制--所有的Key分到一个组,一个Reduce任务处理 3.代码示例 FlowBean package com.ares.hadoop.mr.flowgroup; ...

  3. ElasticSearch获取指定Field数据的Java方法

    ElasticSearch(ES)检索后需要结果时,可能通过source接口读出.但是这样的话,返回的结果会很多.在调用search方法时,我们可以添加addfield或addfields方法,仅仅读 ...

  4. linux:ping不通www.baidu.com

    如果某台Linux服务器ping不通域名, 如下提示: [root@localhost ~]# ping www.baidu.com ping: unknown host www.baidu.com ...

  5. 配置Linux系统实现dhcp功能

    配置Linux系统实现dhcp功能 1.背景及原理    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用 ...

  6. html禁止图片拖拽移动在新窗口打开

    一直觉得直接从网站的表格上复制数据挺方便的, 今天,领导突然说网站上的图片可以被别人拖走了,必须禁止,哎,果然只有领导才考虑得到这种事情啊 so, 将ondragstart="return ...

  7. ASP.NET CORE RAZOR :初始化数据库

    官方说法是:设定数据库种子https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/sql 应用背景:初次部署系统时,设定一 ...

  8. svn hooks使用

    最近要将某个目录做samba共享出去,而想通过svn同步文档到svn,然后通过svn hooks 同步到共享目录,实现自动化 现在svn服务器和samba server再同一台机器上: 在svn路径下 ...

  9. Atitit.程序包装exe启动器 打包 发布 设计 -生成exe java

    Atitit.程序包装exe启动器 打包 发布 设计 -生成exe java 1. 要实现的功能1 2. ahk是个好东东..能启动了...1 3. exe4j   vs  nativej1 4. 2 ...

  10. 如何突破PHP程序员的技术瓶颈分析

    来自:http://www.jb51.net/article/27740.htm 身边有几个做PHP开发的朋友,也接触到不少的PHP工程师,他们常疑虑自己将来在技术上的成长与发展,我常给他们一些建议, ...