多个测试阶段的结果不正确

时间:2016-06-13 11:07:44

标签: caffe

我尝试在训练时使用caffe solver中的test_state: { stage: 'test-on-testSet0' } test_iter: 726 test_state: { stage: 'test-on-testSet1' } test_iter: 363 功能。为了实现这一点,我将以下代码添加到solver.prototxt

layer {
  name: "data"
  type: "ImageData"
  top: "data"
  top: "label"
  include {
    phase: TEST
    stage: "test-on-testSet0"
  }
  transform_param {
    mirror: false
    scale: 0.0039215684
  }
  image_data_param {
    source: "./set0.lst"
    batch_size: 1
  }
}

layer {
  name: "data"
  type: "ImageData"
  top: "data"
  top: "label"
  include {
    phase: TEST
    stage: "test-on-testSet1"
  }
  transform_param {
    mirror: false
    scale: 0.0039215684
  }
  image_data_param {
    source: "./set0.lst"
    batch_size: 2
  }
}

然后我修改了train_val.prototxt,如下所示:

build/tools/caffe

必须注意的是,两个测试用例理想情况相同,测试运行在./set0.lst文件中的完整图像集上。

在使用{ "rules": { "jokes" : { "textjokes" : { ".read" : true, ".write": "auth != null" } }, "users": { "$uid": { ".write": "$uid == auth.uid" } }, "userslikelist": { "$uid": { ".write": "$uid == auth.uid" } } } 进行训练时,两种测试状态的打印精度结果并不相同。 精度层也正确连接。 这可能是造成这种不匹配的原因?

1 个答案:

答案 0 :(得分:1)

我能够通过对所有test_states使用相同的batch_size来解决问题。看起来caffe期望所有测试用例都具有相同的batch_size。

希望这个答案可能在将来帮助某人。

顺便说一句,我想,这可能会作为一个错误发布给caffe社区。我最近提交的caffe(df412ac)面临这个问题。