关于Batch Normalization的参数use_global_stats

从昨天捣腾到今天,模型训练的时候表现很好,但是实际测试时,所有图像的识别结果都相同,单步调试后发现每次识别概率都是均等分布,这个问题苦恼了很久,通过排除法很快将错误定位到deploy中。但是从train网络修改到deploy网络就那么两步,检查了好多遍都觉得没毛病啊。今天突然想到,拿别人的deploy试试看,因为我的train网络是参考他的,结果神奇般的OK了 。最后实在没办法了,一定要追究清楚,用软件对两个文件内容做了对比,终于揭开谜题:Batch Normalization层中有个参数use_global_stats,它表示是否使用caffe内部的均值和方差。 训练的时候,要将use_global_stats设置为false,而测试的时候将use_global_stats设置为true。 打开一看,确实是这个原因。一个小bug能折磨两天,最后发现是很小的问题导致的,真让人哭笑不得。

你可能感兴趣的:(caffe模型)