用多个tmdbs在咖啡杯中洗牌

时间:2017-04-13 08:35:55

标签: deep-learning caffe

我正在使用caffe和lmdb数据库将我的数据提供给网络。但是,我有两个不同的lmdbs用于输入和ground_truth,因为我的ground_truth也是图像。是否有可能使用shuffle?如果是,我可以将两个lmdbs的shuffle: true设置为param吗?

layer {
  name: "data"
  type: "Data"
  top: "data"
  include {
    phase: TRAIN
  }
  transform_param {
    mean_value: X
  }
  data_param {
    source: "..."
    batch_size: X
    backend: LMDB
  }

1 个答案:

答案 0 :(得分:0)

  1. 如果您使用图层类型"Data",则无法使用shuffle,因为data_param中没有随机播放参数。

  2. 对于图层类型"ImageData",您无法使用lmdb作为数据源,因为source文件应该是image address and label的文本文件。但它有shuffle参数。如果您查看image_data_layer.cpp内部,我会发现shuffletrue,那么使用epoch algorithm在每个Fisher–Yates中对图片来源进行随机播放。如果您使用两个不同的ImageData图层,则会为每个图层调用ShuffleImages(),并且两个shuffle不太可能生成相同的序列。因此,您无法在这两个shuffle图层中的任何一个中使用ImageData