chinese_ocr icon indicating copy to clipboard operation
chinese_ocr copied to clipboard

一个严重问题

Open shining-love opened this issue 4 years ago • 3 comments

最近一直在研究repo主的这个代码。这个代码算是该领域比较经典的开源repo了。但是很奇怪里面有明显的错误,未有人提及。我仔细看了下repo主的demo测试阶段代码斗胆提出两个问题:(1)BN层在测试阶段采用的是新数据下的均值和标准差,这也是为什么很多人训练结果不错,但测试效果很差的主要原因;(2)测试阶段的dropoutrate为何不关闭?

shining-love avatar Jun 29 '20 00:06 shining-love

第一个问题中的 bn层是densenet中的吗

ericosmic avatar Jun 30 '20 08:06 ericosmic

第一个问题中的 bn层是densenet中的吗

是的。他的这个repo中densenet中有三处BN层,在测试的时候状态应该改成非训练状态

shining-love avatar Jun 30 '20 09:06 shining-love

https://zhuanlan.zhihu.com/p/56225304

Keras用learning_phase机制来告诉模型当前的所处的模式。假如用户没有手工指定的话,使用fit()时,网络默认将learning_phase设为1,表示训练模式。在预测时,比如调用predict()和evaluate()方法或者在fit()的验证步骤中,网络将learning_phase设为0,表示测试模式。用户可以静态地,在model或tensor添加到一个graph中之前,将learning_phase设为某个值(虽然官方不推荐手动设置),设置后,learning_phase就不可以修改了。

piaobuliao avatar Jul 14 '20 04:07 piaobuliao