【问题标题】:Train bvlc_reference_caffenet with input data scaled to [0,1]使用缩放到 [0,1] 的输入数据训练 bvlc_reference_caffenet
【发布时间】:2017-12-05 05:42:06
【问题描述】:

我跟着Caffe ImageNet Tutorial 成功训练了bvlc_reference_caffenet。现在我想将输入数据从 [0,255] 缩放到 [0,1] (因为我后来必须在有限的固定/浮点精度的硬件上运行这个 CNN),就像在 Caffe LeNet MNIST Tutorial 中一样,它是通过添加来完成的一个scale 参数到data 层:

layer {
  name: "mnist"
  type: "Data"
  transform_param {
    scale: 0.00390625
  }
  data_param {
    source: "mnist_train_lmdb"
    backend: LMDB
    batch_size: 64
  }
  top: "data"
  top: "label"
}

因此,我将此比例参数也添加到 bvlc_reference_caffenet 中,并将每个通道中减去的平均参数除以 255:

layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
     crop_size: 227
     scale: 0.00390625
     mean_value: 0.40784313
     mean_value: 0.45882352
     mean_value: 0.48235294
     mirror: true
  }
  data_param {
    source: "examples/imagenet/ilsvrc12_train_lmdb"
    batch_size: 32
    backend: LMDB
  }
}
layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TEST
  }
  transform_param {
    crop_size: 227
    scale: 0.00390625
    mean_value: 0.40784313
    mean_value: 0.45882352
    mean_value: 0.48235294
    mirror: false
  }
  data_param {
    source: "examples/imagenet/ilsvrc12_val_lmdb"
    batch_size: 32
    backend: LMDB
  }
}

当我现在训练网络时,准确率总是低于机会。我还必须采用哪些其他参数来用 [0,1] 图像而不是 [0,255] 图像训练网络?

【问题讨论】:

    标签: caffe


    【解决方案1】:

    Caffe 首先减去平均值,然后缩放结果。您应该保留原来的 0...255 平均值。
    参考:

    if (has_mean_file) {
              transformed_data[top_index] =
                (datum_element - mean[data_index]) * scale;
    }
    

    (data_transformer.cpp)

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 2020-02-08
      • 2015-03-28
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 2020-11-02
      • 2021-06-23
      • 1970-01-01
      相关资源
      最近更新 更多