caffe系列之数据层及参数

1、数据层是模型的最底层,是模型的入口,不仅提供数据输入,也提供数据从Blobs转换成别的格式进行保存输出,通常的数据预处理(去均值,放大缩小,裁剪和镜像等)也在这一层实现。
2、数据来源可以是高效的数据库(levelDB和LMDB),也可以来自内存,甚至可以是磁盘的HDF5
文件或图片格式文件。

layer{
    name: "cifar"
    type: "Data"
    top: "data"
    top:"label"
    include{
        phase: TRAIN
    }
    transform_param{
        mean_file: "example/cifar10/mean.binaryproto"
    }
    data_param{
source:"examples/cifar10/cifar_10_train_lmdb"
    batch_size: 100
    backend: LMDB       
    }
}

name: 该层的名称
type: 层的类型,如果为Data,表示数据来源于LevelDB或LMDB。根据数据来源的不同,数据类型也不同。
top或bottom: bottom来输入数据,top来输出数据
data与label:在数据层中,至少有一个命名为data的top,如果有第二个,一般为label。这种(data,label)是分类模型所必需的。
include:一般训练的时候和测试的时候,模型的层是不一样的,如果没有指定include的参数,则表示该层即在训练模型中,又在测试模型中。
Transformations: 数据预处理,可以将数据变换到指定的范围定,如果设置scale为0.0003900625,实际上就是1/255,即将输入数据又0-255归一化到0-1之间。

transform_param{
    scale:0.00390625
    mean_file_size: "examples/cifar10/mean.binaryproto"
    #用一个均值文件来进行均值操作
    mirror: 1  #1表示开启镜像,0表示关闭
    crop_size:227
    #裁剪一个227*227的图块,在训练阶段随机裁剪,在测试阶段从中间裁剪
}

后面的data_param部分,就是根据数据来源的不同,来进行不同的设置;
1、数据来源于数据库(levelDB和LMDB)
层类型:Data
必须设置的参数:
source:包含数据库的目录名称,如examples/mnist/mnist_train_lmdb
batch_size: 每次处理的数据个数,如64
可选的参数:
rand_skip:在开始的时候,路过某个数据的输入。通常对异步的SGD很有用。
backend:选择是采用LeveDB还是LMDB,默认是LevelDB
示例 :

layer{
    name: "mnist"
    type: "Data"
    top: "data"
    top: "label"
    include{
        phase: TRAIN
    }
    transform_param{
        scale: 0.00390625
    }
    data_param{
        source: "example/mnist/mnist_train_ldb"
        batch_size: 64
        backend: LMDB
    }
}

2、数据来自于内存
层类型: MemoryData
必须设置的参数:
batch_size: 每一次处理的数据个数
channels:通道数
height: 高度
width:宽度

示例:

layer{
    top: "data"
    top: "label"
    name: "memory_data"
    type: "MemoryData"
    memory_data_param{
    batch_size:2
    height:100
    width:100
    channels: 1
    }
transform_param{
    scale: 0.0078125
    mean_file: "mean.proto"
    mirror:false
}
}

3、数据来源于HDF5
层类型:HDF5Data
必须设置的参数:
source:读取的文件名称
batch_szie: 每一次处理的数据个数
示例:

layer{
name: "data"
type: "HDF5Data"
top: "data"
top: "label"
hdf5_data_param{
    source: "examples/hdf5_classification/data/train.txt"
    batch_size: 10
} 
}

4、数据来自于图片
层类型:ImageData
必须设置的参数:
source: 一个文本文件的名字,每一行给定一个图片文件的名称的标签
batch_size: 每一次处理的数据的个数,即图片数
可选的参数:
rand_skip: 在开始的时候,路过某个数据的输入,通常对异步的SGD很有用
shuffle:随机打乱顺序,默认值为false
new_height_width: 如果没有设置,则将图片进行resize
示例:

layer{
name: "data"
type: "ImageData"
top: "data"
top: "label"
transform_param {
mirror: false
crop_size:227
mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
}
image_data_param{
    source: "exmaples/_temp/file_list.txt"
    batch_size: 50
    new_height: 256
    new_width: 256
    }
}

5、数据来源于Windos
必须设置的参数:
source: 一个文本文件的名字
batch_size: 每一次处理的数据个数,即图片数
示例:

layer {  
  name: "data"  
  type: "WindowData"  
  top: "data"  
  top: "label"  
  include {  
    phase: TRAIN  
  }  
  transform_param {  
    mirror: true  
    crop_size: 227  
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"  
  }  
  window_data_param {  
    source: "examples/finetune_pascal_detection/window_file_2007_trainval.txt"  
    batch_size: 128  
    fg_threshold: 0.5  
    bg_threshold: 0.5  
    fg_fraction: 0.25  
    context_pad: 16  
    crop_mode: "warp"  
  }  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值