为什么caffe在训练时准确率很高,而用classification测试时准确率很低

来源:互联网 发布:有关程序员的网名 编辑:程序博客网 时间:2024/04/30 02:23



预处理不一致造成的。

在训练时, 网络应该使用的是pixel mean, 而在使用网络时,在classification.cpp中默认计算的是channel mean. 


解决方式:

在classification.cpp里的setMean方法计算的是图片每个channel的平均值,即channel_mean, 需要改成每个pixel 的平均值,即pixel_mean. 其实mean.binaryproto中储存的就是pixel_mean, 到 cv::merge(channels, mean); 这里的mean就已经是pixel_mean了,把后面的计算channel的cv::Scalar channel_mean = cv::mean(mean);注释掉,并把mean赋值给mean_就行。

阅读全文
0 0
原创粉丝点击