yalecyu / crnn.caffe

crnn.caffe
Other
76 stars 51 forks source link

关于BN层的参数问题 #14

Open 871699406 opened 6 years ago

871699406 commented 6 years ago

我测试的时候deploy中设置use_global_stats: false结果就正常,设置为true就不对,可是我看网上说测试的时候应该设置为true,训练prototxt里TEST的时候也是设置为true,请问你有过这样的问题么?为何你给出的deploy里这样设置?

yalecyu commented 6 years ago

我有过这样的问题,我的设置是对的,你可参考一下。

loliod commented 6 years ago

为什么inference阶段 设置use_global_stats: false 重新计算 而不是用已经训好的参数? @yalecyu

chendan1988-1994 commented 6 years ago

我发现如果deploy里面的use_global_stats设置为false,是有识别结果,但是使用提取特征extract最后一层softmax特征获取的最大概率对应的类别和使用识别recongine识别的结果有时候会出现不一致。 如果deploy里面的use_global_stats设置为true,extract和recongine获取的概率分布一致了,但是都是错误的,把所有的类别都预测为同一类,比如都预测为空格是。所以我想问,这个use_global_stats应该怎么设置。

yalecyu commented 6 years ago

@871699406 @loliod @chendan1988-1994 可能真的有错误,非常抱歉,在我最新版的模型上,我已经修复了BatchNorm的问题。我的理解是,在训练的时候使用false,来学习参数,测试的时候true,来使用学习到的参数。

chendan1988-1994 commented 6 years ago

好的好的,谢谢您。虽然出了一点点小问题,但是您的代码真的让我学到了很多东西,对我的帮助也很大,再次感谢您。

871699406 commented 6 years ago

@yalecyu 可否告知你是怎么修改的BatchNorm的问题?具体修改了哪里?对这个问题比较感兴趣

yalecyu commented 5 years ago

@871699406 最新的prototxt已经修改了BN层的配置