个人认为学习一个陌生的框架,最好从例子开始,所以我们也从一个例子开始。

学习本教程之前,你需要首先对卷积神经网络算法原理有些了解,而且安装好了caffe

卷积神经网络原理参考:http://cs231n.stanford.edu/syllabus.html

Ubuntu安装caffe教程参考:http://caffe.berkeleyvision.org/install_apt.html

先讲解一下caffe设计的架构吧:

训练mnist数据集使用 build/tools/caffe

训练步骤:

准备数据:

cd $CAFFE_ROOT   //安装caffe的根目录

./data/mnist/get_mnist.sh  //下载mnist数据集
./examples/mnist/create_mnist.sh   //将图片转为lmdb数据格式 

 

定义网络模型:

  首先定义数据层: 

  layer {
  name: "mnist" //名字可以随便写 字符串类型
  type: "Data"  //类型 必须是 Data 字符串类型
  transform_param {
  scale: 0.00390625
  }
  data_param {
  source: "mnist_train_lmdb"
  backend: LMDB
  batch_size: 64
  }
  top: "data"
  top: "label"
  }   定义卷基层:
  layer {
  name: "conv1"
  type: "Convolution"
  param { lr_mult: 1 } #定义w参数的学习率
  param { lr_mult: 2 } #定义b参数的学习率
  convolution_param {
  num_output: 20 #定义输出map数量
  kernel_size: 5
  stride: 1
  weight_filler {
  type: "xavier"
  }
  bias_filler {
  type: "constant"
  }
  }
  bottom: "data"
  top: "conv1"
  }
定义pool层:
  layer {
  name: "pool1"
  type: "Pooling"
   pooling_param {
  kernel_size: 2
   stride: 2
   pool: MAX
   }
  bottom: "conv1"
  top: "pool1"
  }
定义全连接层:
  layer {
   name: "ip1"
   type: "InnerProduct"
   param { lr_mult: 1 }
   param { lr_mult: 2 }
  inner_product_param {
   num_output: 500
   weight_filler {
   type: "xavier"
   }
   bias_filler {
   type: "constant"
   }
   }
   bottom: "pool2"
   top: "ip1"
  }
  定义relu层:
  layer {
   name: "relu1"
   type: "ReLU"
   bottom: "ip1"
   top: "ip1"
  }
再定义一个全连接层: 注意这里的输出为 分类的个数
  layer {
    name: "ip2"
  type: "InnerProduct"
   param { lr_mult: 1 }
  param { lr_mult: 2 }
  inner_product_param {
   num_output: 10 #表示有10个类别 从0-9个数字
   weight_filler {
  type: "xavier"
   }
  bias_filler {
   type: "constant"
   }
   }
  bottom: "ip1"
  top: "ip2"
  }   最后定义 损失函数
  layer {
   name: "loss"
  type: "SoftmaxWithLoss"
  bottom: "ip2"
   bottom: "label"
  }
定义好网络模型后,需要定义 模型训练的策略, solver
# The train/test net protocol buffer definition
net: "examples/mnist/lenet_train_test.prototxt"
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 100
# Carry out testing every 500 training iterations.
test_interval: 500
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
# Display every 100 iterations
display: 100
# The maximum number of iterations
max_iter: 10000
# snapshot intermediate results
snapshot: 5000
snapshot_prefix: "examples/mnist/lenet"
# solver mode: CPU or GPU
solver_mode: GPU #使用gpu进行训练

开始训练网络:
cd $CAFFE_ROOT
./examples/mnist/train_lenet.sh
你会看到类似下面的输出:
I1203 net.cpp:66] Creating Layer conv1
I1203 net.cpp:76] conv1 <- data
I1203 net.cpp:101] conv1 -> conv1
I1203 net.cpp:116] Top shape: 20 24 24
I1203 net.cpp:127] conv1 needs backward computation.

。。。。。
I1203 net.cpp:142] Network initialization done.
I1203 solver.cpp:36] Solver scaffolding done.
I1203 solver.cpp:44] Solving LeNet
。。。。。
I1203 solver.cpp:84] Testing net
I1203 solver.cpp:111] Test score #0: 0.9897
I1203 solver.cpp:111] Test score #1: 0.0324599
I1203 solver.cpp:126] Snapshotting to lenet_iter_10000
I1203 solver.cpp:133] Snapshotting solver state to lenet_iter_10000.solverstate
I1203 solver.cpp:78] Optimization Done.

结束

运行结构图:

 

接下来的教程会结合源码详细展开 这三部做了什么 看懂caffe源码

欢迎加入深度学习交流群,群号码:317703095

使用caffe训练mnist数据集 - caffe教程实战(一)的更多相关文章

  1. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

  2. ubuntu16.04+caffe训练mnist数据集

    1.   caffe-master文件夹权限修改 下载的caffe源码编译的caffe-master文件夹貌似没有写入权限,输入以下命令修改: sudo chmod -R 777 ~/caffe-ma ...

  3. Caffe系列4——基于Caffe的MNIST数据集训练与测试(手把手教你使用Lenet识别手写字体)

    基于Caffe的MNIST数据集训练与测试 原创:转载请注明https://www.cnblogs.com/xiaoboge/p/10688926.html  摘要 在前面的博文中,我详细介绍了Caf ...

  4. windows下使用caffe测试mnist数据集

    在win10机子上装了caffe,感谢大神们的帖子,要入坑caffe-windows的朋友们看这里,还有这里,安装下来基本没什么问题. 好了,本博文写一下使用caffe测试mnist数据集的步骤. 1 ...

  5. 【Mxnet】----1、使用mxnet训练mnist数据集

    使用自己准备的mnist数据集,将0-9的bmp图像分别放到0-9文件夹下,然后用mxnet训练. 1.制作rec数据集 (1).制作list

  6. TensorFlow 训练MNIST数据集(2)—— 多层神经网络

    在我的上一篇随笔中,采用了单层神经网络来对MNIST进行训练,在测试集中只有约90%的正确率.这次换一种神经网络(多层神经网络)来进行训练和测试. 1.获取MNIST数据 MNIST数据集只要一行代码 ...

  7. TensorFlow训练MNIST数据集(1) —— softmax 单层神经网络

    1.MNIST数据集简介 首先通过下面两行代码获取到TensorFlow内置的MNIST数据集: from tensorflow.examples.tutorials.mnist import inp ...

  8. 搭建简单模型训练MNIST数据集

    # -*- coding = utf-8 -*- # @Time : 2021/3/16 # @Author : pistachio # @File : test1.py # @Software : ...

  9. MXNet学习-第一个例子:训练MNIST数据集

    一个门外汉写的MXNET跑MNIST的例子,三层全连接层最后验证率是97%左右,毕竟是第一个例子,主要就是用来理解MXNet怎么使用. #导入需要的模块 import numpy as np #num ...

随机推荐

  1. 【BZOJ2157】旅游(树链剖分,Link-Cut Tree)

    [BZOJ2157]旅游(树链剖分,Link-Cut Tree) 题面 Description Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥 ...

  2. 【BZOJ3669】【Noi2014】魔法森林(Link-Cut Tree)

    [BZOJ3669][Noi2014]魔法森林(Link-Cut Tree) 题面 题目描述 为了得到书法大家的真传,小 E 同学下定决心去拜访住在魔法森林中的隐 士.魔法森林可以被看成一个包含 n ...

  3. mariadb 压缩包gz安装方式

    1.解压安装包tar -zxvf mariadb-5.5.56-linux-x86_64.tar.gz 2.cd support-filescp my-small.cnf /etc/my.cnf 2. ...

  4. vue-cli工具搭建vue-webpack项目

    1.安装node环境 下载地址 https://nodejs.org/en/download/ node -v   安装成功后在命令行查看node版本 npm-v   安装成功后在命令行查看npm版本 ...

  5. 记录解决python在spark运行加载第三方库的问题

    一般写python的我们经常会import一些常用的库,然后有时集群环境上的python没有这些库,怎么办呢? 通过一段时间的摸索发现有二种方式可以解决这个问题: 第一种方法: 下载对应python的 ...

  6. 【前端单元测试入门05】react的单元测试之jest

    jest jest是facebook推出的一款测试框架,集成了前面所讲的Mocha和chai,jsdom,sinon等功能. 安装 npm install --save-dev jest npm in ...

  7. git 菜鸟入门

    1. 推荐的 git 仓库(注册帐号并登录): https://github.com/ https://git.oschina.net/2. 创建仓库       里面的地址为 git 仓库的地址 , ...

  8. new Image的API

  9. 实现Canvas2D绘图 使元素绕中心居中旋转

    我之前用canvas写了个头像剪切的demo,但是关于让载入的图片旋转是个问题,虽然通过其它方法实现了,但是感觉并不太好,于是查了些资料,想试着重新做一下canvas的旋转. 在开始之前,先让我们来做 ...

  10. 【Windows】定时任务设置

    Windows定时任务 linux上面的定时任务已经解除过好多次了.不外乎crontab,at之类的命令,而windows上的定时任务今天才偶尔看到怎么设置.想到以后生活上可能会用到一些这方面的知识就 ...