test正确率很高,classification.bin分类出错

我用caffe训练了一个自己的图像集,训练和测试的正确率都很高。
但在使用classification对单张图片测试时,发现分类结果是错误的。
为了验证,我特地在test里输出softmax的结果验证,发现这里的结果,是正确的类别概率最高。
但在使用classification时,就不对了。
我看了一些网上的帖子,说是classification的代码读图函数设置的问题,但我设置了好几次不同的,再用classification分类,结果还是错误的,而且不同的设置产生的结果是一样的。
请问是怎么一回事,有人知道吗?
已邀请:

hcube

赞同来自: a803966

其实上述评论里楼主已经回答了,我还是把楼主帮助我的回答重复一遍吧
 
binaryproto文件本身是一个和图像大小一样的矩阵,每个位置是图像集在该点的均值,在train和test的时候,是将binaryproto文件转换成一个矩阵,并用图像减去该矩阵。
但是用C 方法的classification.bin或者Python方法的时候,是先对binaryproto文件的矩阵计算均值,一个三通道矩阵,最后就三个均值,然后用每个通道的均值,减去图像上的每个像素点。
 
所以以下方法是在网络结构文件里,把均值的binaryproto文件,换成三个通道均值

捕获0.JPG

 
改成

捕获.JPG

 
计算三个均值的方法

捕获-1.JPG

hcube

赞同来自:

我也遇到相同问题了,
    我使用的是caffenet网络,原本最后一层输出num_output是1000,我把它改成了3,其它卷积核数之类未修改,然后用来分类3种图片图片,训练模型的结果accuracy是0.979569,loss值是0.0536901。
    但是和楼主一样用classification.bin来分类时,几乎把所有的3类图片都归到其中一类去了,基本都是错的。
    是不是和卷积核数有关呢,最后输出的分类种数减小了,每一层的卷积核数也要做相应修改吗?
    这个问题困扰我好久了,一直找不出问题在哪儿

散落_1234

赞同来自:

楼主解决了吗,我也遇到相同的问题

糖不想搞科研

赞同来自:

我也遇到了相同的问题,楼主如果解决的话,求分享一下

a803966

赞同来自:

我也遇到了,求分享

c408550969

赞同来自:

同样的问题,求帮助!

a803966

赞同来自:

谢谢,回答很到位

要回复问题请先登录注册