caffe验证集测试集准确率差别很大的可能原因

用caffe自身的训练方法训练的时候,在验证集上准确率达到99%,可是当我用python接口跑测试数据只有50%左右,我起初以为是过拟合,可看了数据发现分类全部偏向一个类别,几乎所有图片,全部分为印刷类。过拟合也不该这样啊。

后来发现是我的均值文件有问题,训练时做了归一化,数据在01之间,可是,直接用训练数据计算的均值在0-255之间,训练时会除255,可是自己用python测试的时候,减去的均值要自己除255,否则,图片均值太大直接覆盖了图片信息,当然只能分一类。

后来,又遇到一次,可是这一次,我能确定我的caffe-model文件没有问题。python训练文件也没有问题,因为我改换另一个caffe-model文件,分类结果是正确的,唯一有问题可能是deploy文件,可是这个我后来 也排除了,检查了很多次了,这就很诡异了,网上查也查不到。

郁闷了一天,只能向老大求助,他说这个可能原因有很多,问我训练时用了gpu吗?用了。测试呢?没用。那看看是不是这个原因吧。

额--!,果然是,加了这么一句话,caffe.set_mode_gpu(),分类结果又快又准。

为什么呢?我添加一了个DenseBlock层,当时猜想是作者难道没有实现cpu计算,只用gpu,可是看了代码,明明写了啊,这个我就不知道了,留着填坑吧。

https://github.com/senlinuc/caffe_ocr/blob/master/src/caffe/layers/DenseBlock_layer.cpp

这是那个地址。

最后总结下,caffe训练时验证集准确率高,用python接口测试测试集准确率低的原因:

1) 检查你的python测试文件,是否有问题,比如归一化,比如RGB换成BGR,比如HWC换成CHW

2) 检查deploy文件是否有问题

3) 检查你测试时用的是GPU模式还是CPU


  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值