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