深度学习_caffe (4) 基于mnist实例搭建新的神经网络&在caffe中添加层

机器学习入门级的例子,mnist手写体数字识别的训练数据库。可以通过caffe提供的这个例子来学习神经网络的模型在caffe中是如何组织 如何运行的,然后我们就可以试着去搭建自己的神经网络模型 实现相应的功能。网上有许多关于在caffe中添加层的文章 我也看了一些,但是还是觉得对于初学者来说太过复杂,所以我决定按照自己的思路来理顺 学习神经网络的过程,这其中可能会有我也不明白的地方 不过不要紧 一点点的累计 以后会懂的,但是我相信 这个认知过程应该是非常符合小白的胃口的。^-^

1.运行mnist
cd ~/caffe/caffe-master #主目录下
time sh examples/mnist/train_lenet.sh
2.设置参数 指定模型
./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel -gpu=0

实现Testing。参数说明如下:
test:表示对训练好的模型进行Testing,而不是training。其他参数包括train, time, device_query。
-model=XXX:指定模型prototxt文件,这是一个文本文件,详细描述了网络结构和数据集信息。
-weights=XXX:指定训练好的caffemodel二进制文件
-gpu=0:指定在GPU上运行,GPUID=0。如果你没有GPU就去掉这个参数,默认在CPU上运行

以上是手写字符库的运行代码,如果你跟我一样是个新手小白的话 可以跟着我的思路去试一试。
接下来要做的就是 根据mnist这个实例的运行过程 一步步抽丝剥茧 仿写一个自己的神经网络。
可以看到,第一步是 运行了 一个 .sh文件 以运行 mnist
time sh examples/mnist/train_lenet.sh
time是计时的意思 sh运行.sh 文件
那么我们打开train_lenet.sh 文件看看是个什么东西
这里写图片描述
0.0就一句话。(还以为会有一大片代码呢)
train:表示对模型进行training。其他参数包括train, time, device_query。
并指定 solver类型 具体内容写在 lenet_solver.prototxt中。

执行完这个文件就 训练好了mnist模型
因此第二步,就进行了测试。

2.设置参数 指定模型
./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel -gpu=0

实现Testing。参数说明如下:
test:表示对训练好的模型进行Testing,而不是training。其他参数包括train, time, device_query。
-model=XXX:指定模型prototxt文件,这是一个文本文件,详细描述了网络结构和数据集信息。
-weights=XXX:指定训练好的caffemodel二进制文件
-gpu=0:指定在GPU上运行,GPUID=0。如果你没有GPU就去掉这个参数,默认在CPU上运行

思考一下,那么当我们重写的时候,运行语句应该是类似的,测试语句也是一样的 都用到caffe的模型。不一样的地方应该就是 lenet_solver.prototxt的部分 那么我们下一步就看看 lenet_solver.prototxt这个文件长什么样子吧。测试先放一放,搞定训练再说它。
这里写图片描述

另外说一下Lenet 是一个处理mnist的非常好的网络结构。

net: "examples/mnist/lenet_train_test.prototxt"网络定义
test_iter: 100   测试的批次 mnist有一万张测试图片 100*100=10000
test_interval: 500   每五百次迭代测试一次
base_lr: 0.01    learning rate 学习速率
momentum: 0.9   冲量
weight_decay: 0.0005   weight_decay
lr_policy: "inv"   学习率变化
gamma: 0.0001   学习率变化的比率
power: 0.75  
display: 100   每100层显示一次
max_iter: 10000    最大迭代次数
snapshot: 5000     每迭代500次显示状态。
snapshot_prefix: "examples/mnist/lenet"** 每迭代五百次存储一次数据到电脑 该路径下。
solver_mode: GPU     GPU模式

可以看出,上面这些语句是给定了一些caffe训练时需要用到的参数,具体什么含义 我也已经查好了写在后面了,实际的应用效果目前还不知道。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值