我们想知道每一类的AP信息,而且如果能画出P-R曲线就更好了,这都有利于分析模型好坏。事实上,在仔细看过solver.cpp的源代码后,可发现如下语句:
...
if (param_.show_per_class_result()) {
LOG(INFO) << "class" << label << ": " << APs[label];
}
...
什么意思?这就是说,只要在solver.prototxt中加入如下命令,同时令ap_version: "11point",就能在终端中打印每一类的AP信息。
show_per_class_result: true
于是做了实验,发现果然打印了每一类的检测精度:
I0127 20:43:58.062511 13937 solver.cpp:332] Iteration 0, loss = 1.22286
I0127 20:43:58.062556 13937 solver.cpp:433] Iteration 0, Testing net (#0)
I0127 20:43:58.074950 13937 net.cpp:693] Ignoring source layer mbox_loss
I0127 20:44:09.344396 13937 solver.cpp:540] class1: 0.722297
I0127 20:44:09.344655 13937 solver.cpp:540] class2: 0.878479
I0127 20:44:09.344856 13937 solver.cpp:540] class3: 0.723391
I0127 20:44:09.344866 13937 solver.cpp:553] Test net output #0: detection_eval = 0.774722
I0127 20:44:09.344885 13937 solver.cpp:337] Optimization Done.
I0127 20:44:09.344889 13937 caffe.cpp:254] Optimization Done.