caffe 数据层(lmdb数据源)参数配置

layer {
  name: "my_data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    mean_file: "/home/hanwannan/mean.binaryproto"
    scale: 0.00390625
    mirror: 1  # 1表示开启数据增强,0表示关闭,也可用ture和false来表示
    # 剪裁一个 32*32的图块,在训练阶段随机剪裁,在测试阶段从中间裁剪
    crop_size: 32
  }
  data_param {
    source: "/home/hanwannan/train_lmdb"
    batch_size: 128
    backend: LMDB
  }
}

name: 表示该层的名称,可随意取

type: 层类型,如果是Data,表示数据来源于LevelDB或LMDB。根据数据的来源不同,数据层的类型也不同。

top或bottom: 每一层用bottom来输入数据,用top来输出数据。如果只有top没有bottom,则此层只有输出,没有输入。反之亦然。如果有多个 top或多个bottom,表示有多个blobs数据的输入和输出。

data 与 label: 在数据层中,至少有一个命名为data的top。如果有第二个top,一般命名为label。 这种(data,label)配对是分类模型所必需的。

include: 一般训练的时候和测试的时候,模型的层是不一样的。如果phase为TRAIN,该层是属于训练阶段的层,如果phase为TEST属于测试阶段的层。如果没有include参数,则表示该层既在训练模型中,又在测试模型中。

Transformations:
     数据的预处理,可以将数据变换到定义的范围内。
     scale : 0.00390625,实际上就是1.0/256, 即将输入数据由0-255归一化到0-1之间
      mean_file : 均值文件(如何生成后续会发代码)
      mirror: 1 1表示开启数据增强,0表示关闭,也可用ture和false来表示
     crop_size: 32# 剪裁一个 32*32的图块,在训练阶段随机剪裁,在测试阶段从中间裁剪

data_param参数就是根据数据的来源不同,来进行不同的设置。

数据来自于数据库如LMDB的参数配置

必选参数:

  source: 数据集路径,如/home/hanwannan/train_lmdb(后续会发表lmdb数据集制作方法)

扫描二维码关注公众号,回复: 3599921 查看本文章

  batch_size: 每次处理的数据个数,如128

可选的参数:

  rand_skip: 在开始的时候,路过某个数据的输入。通常对异步的SGD很有用。

  backend: 选择是采用LevelDB还是LMDB, 默认是LevelDB.

猜你喜欢

转载自blog.csdn.net/weixin_43439673/article/details/83106509