淘先锋技术网

首页 1 2 3 4 5 6 7

(一):CIFAR数据集:

Caffe 深度学习框架上手教程

image的个数:60000
image的大小:32*32*3
class的个数:10 (飞机;汽车;鸟;猫;鹿;狗;青蛙;马;船;卡车)
50000张用于训练,10000张用于测试。

(二)


train batch有5个 每个里面有10000张图片
test batch有1个 每一类1000张图片
batches.meta为class的名字
每个batch的有10000个data和相对应的label
label从0到9
有一个名为batches.meta.txt的文件。这是一个ASCII文件,将范围为0-9的数字标签映射到有意义的类名。它只是10个类名的列表,每行一个。行i上的类名称对应于数字标签i
(三)

在caffe中自带的CIFAR数据集进行训练的prototxt和结构如下:

cifar10_quick_train_test.prototxt

name: "CIFAR10_quick"
  layer {
  name: "cifar"
  type: "Data"
  top: "data"
  top: "label"
  include {
  phase: TRAIN
  }
  transform_param {
  mean_file: "examples/cifar10/mean.binaryproto"
  }
  data_param {
  source: "examples/cifar10/cifar10_train_lmdb"
  batch_size: 100
  backend: LMDB
  }
  }
  layer {
  name: "cifar"
  type: "Data"
  top: "data"
  top: "label"
  include {
  phase: TEST
  }
  transform_param {
  mean_file: "examples/cifar10/mean.binaryproto"
  }
  data_param {
  source: "examples/cifar10/cifar10_test_lmdb"
  batch_size: 100
  backend: LMDB
  }
  }
  layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param {
  lr_mult: 1
  }
  param {
  lr_mult: 2
  }
  convolution_param {
  num_output: 32
  pad: 2
  kernel_size: 5
  stride: 1
  weight_filler {
  type: "gaussian"
  std: 0.0001
  }
  bias_filler {
  type: "constant"
  }
  }
  }
  layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
  pool: MAX
  kernel_size: 3
  stride: 2
  }
  }
  layer {
  name: "relu1"
  type: "ReLU"
  bottom: "pool1"
  top: "pool1"
  }
  layer {
  name: "conv2"
  type: "Convolution"
  bottom: "pool1"
  top: "conv2"
  param {
  lr_mult: 1
  }
  param {
  lr_mult: 2
  }
  convolution_param {
  num_output: 32
  pad: 2
  kernel_size: 5
  stride: 1
  weight_filler {
  type: "gaussian"
  std: 0.01
  }
  bias_filler {
  type: "constant"
  }
  }
  }
  layer {
  name: "relu2"
  type: "ReLU"
  bottom: "conv2"
  top: "conv2"
  }
  layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv2"
  top: "pool2"
  pooling_param {
  pool: AVE
  kernel_size: 3
  stride: 2
  }
  }
  layer {
  name: "conv3"
  type: "Convolution"
  bottom: "pool2"
  top: "conv3"
  param {
  lr_mult: 1
  }
  param {
  lr_mult: 2
  }
  convolution_param {
  num_output: 64
  pad: 2
  kernel_size: 5
  stride: 1
  weight_filler {
  type: "gaussian"
  std: 0.01
  }
  bias_filler {
  type: "constant"
  }
  }
  }
  layer {
  name: "relu3"
  type: "ReLU"
  bottom: "conv3"
  top: "conv3"
  }
  layer {
  name: "pool3"
  type: "Pooling"
  bottom: "conv3"
  top: "pool3"
  pooling_param {
  pool: AVE
  kernel_size: 3
  stride: 2
  }
  }
  layer {
  name: "ip1"
  type: "InnerProduct"
  bottom: "pool3"
  top: "ip1"
  param {
  lr_mult: 1
  }
  param {
  lr_mult: 2
  }
  inner_product_param {
  num_output: 64
  weight_filler {
  type: "gaussian"
  std: 0.1
  }
  bias_filler {
  type: "constant"
  }
  }
  }
  layer {
  name: "ip2"
  type: "InnerProduct"
  bottom: "ip1"
  top: "ip2"
  param {
  lr_mult: 1
  }
  param {
  lr_mult: 2
  }
  inner_product_param {
  num_output: 10
  weight_filler {
  type: "gaussian"
  std: 0.1
  }
  bias_filler {
  type: "constant"
  }
  }
  }
  layer {
  name: "accuracy"
  type: "Accuracy"
  bottom: "ip2"
  bottom: "label"
  top: "accuracy"
  include {
  phase: TEST
  }
  }
  layer {
  name: "loss"
  type: "SoftmaxWithLoss"
  bottom: "ip2"
  bottom: "label"
  top: "loss"
  }

其中python版本需要另行修改,matlab下载即可。