当前位置:Gxlcms > 数据库问题 > caffe读取多标签的lmdb数据

caffe读取多标签的lmdb数据

时间:2021-07-01 10:21:17 帮助过:24人阅读

0 img3 1 img4 1
img1 10
img2 11
img3 10
img4 11

按照同一顺序做shuffle处理,caffe训练数据shuffle处理是有必要的,虽然caffe的lmdb转换工具能够直接做shuffle,但是不能保证两个list的顺序一致。文本按行乱序的命令可以参考http://www.cnblogs.com/zhaojunjie/p/6735713.html。处理后的文件如下:

img1 0
img3 1
img4 1
img2 0
img1 10
img3 10
img4 11
img2 11

接下来就可以对他们生成两个lmdb了,值得注意的是如果图像数据较大,生成lmdb时可以将第二个list的图像resize到1*1,如下(前面已经shuffle,这里不再加入shuffle参数):

pathtocaffe/build/tools/convert_imageset --resize_height=256 --resize_width=256 "" list1 lmdb_data_1
pathtocaffe/build/tools/convert_imageset --resize_height=1 --resize_width=1 "" list2 lmdb_data_2

生成好了lmdb,如何用呢?prototxt文件参考如下:

name: "CaffeNet"
layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label1"
  include {
    phase: TRAIN
  }
  transform_param {
    mirror: true
    mean_file: "train_VGG_cub_mean.binaryproto"
    crop_size: 224
  }
  data_param {
    source: "lmdb_data_1"
    backend: LMDB
    batch_size: 16
  }
}
layer {
  name: "data2"
  type: "Data"
  top: "data_noused"
  top: "label2"
  include {
    phase: TRAIN
  }
  data_param {
    source: "lmdb_data_2"
    backend: LMDB
    batch_size: 16
  }
}
#将data_nousedresize到1位,防止caffe输出过多内容
layer {
  name: "reductionx"
  bottom: "data_noused"
  top: "data_noused"
  type: "Reduction"
  reduction_param {
    axis: 0
  }

}

 

【完】

 

caffe读取多标签的lmdb数据

标签:res   list   图像   source   convert   支持   blank   情况   sed   

人气教程排行