我尝试在训练时使用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"
}
}
}
进行训练时,两种测试状态的打印精度结果并不相同。
精度层也正确连接。
这可能是造成这种不匹配的原因?
答案 0 :(得分:1)
我能够通过对所有test_states使用相同的batch_size
来解决问题。看起来caffe期望所有测试用例都具有相同的batch_size。
希望这个答案可能在将来帮助某人。
顺便说一句,我想,这可能会作为一个错误发布给caffe社区。我最近提交的caffe(df412ac)面临这个问题。