Caffe学习(四)数据层及参数设置

caffe的各种数据层在caffe.proto文件中有定义。通过对定义的caffe.proto文件进行编译,产生支持各种层操作的c++代码。后面将会详细解读caffe.proto文件(在caffe里就是当做一个自动代码生成工具来用)。

本文主要介绍caffe可以读入数据的各种格式,方便后面采用caffe训练自己的数据

数据的来源主要有以下几种:

(1)高效的数据库(LevelDB或者LMDB)

(2)内存

(3)硬盘文件,HDF5格式或者图片格式的文件。此种方式效率较差,目前一般是先将原生数据转换为(1)中的数据库格式,然后再来处理

一.不同种类数据层的共同属性

绝大部分数据层在设置时,都可以先对数据进行一定的预处理,包括归一化scale,去中心化(减去平均值),水平镜像flip,随机裁剪crop等四种预处理方式。

该四种预处理方式可以靠该Layer的transform_params属性(HDF5 Layer没有该属性。。。)来指定。指定方式如下:

transform_param {
  # randomly horizontally mirror the image
  mirror: 1
  # crop a `crop_size` x `crop_size` patch:
  # - at random during training
  # - from the center during testing
  crop_size: 227
  # substract mean value(RGB three channel): these mean_values can equivalently be replaced with a mean.binaryproto file as
  # mean_file: name_of_mean_file.binaryproto
  mean_value: 104
  mean_value: 117
  mean_value: 123
}
数据预处理只是数据层transfor_params属性的一部分,其余transform_params属性可以在caffe.proto文件里的Message类型:TransformationParameter下查找。
二.数据来源于数据库(LevelDB或者LMDB)

LMDB:Lightning MemoryMapped Databases,由于Caffe的文件读取方式使得该格式的数据输入最适用于1-K分类问题

层参数设置实例:

layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    mirror: 1
    crop_size: 227
    mean_value: 104
    mean_value: 117
    mean_value: 123
 
  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值