“Keras批量标准化”;“坏了吗?”模型无法预测。它真的坏了吗?有办法吗?或关于的具体文档? 简介
我正在制作一个分类器来识别图片中是否存在缺陷,在改进模型的过程中,我尝试了批量标准化,主要是利用其加快收敛的能力 虽然它提供了预期的速度优势,但我也观察到一些奇怪的症状:“Keras批量标准化”;“坏了吗?”模型无法预测。它真的坏了吗?有办法吗?或关于的具体文档? 简介,keras,predict,batch-normalization,Keras,Predict,Batch Normalization,我正在制作一个分类器来识别图片中是否存在缺陷,在改进模型的过程中,我尝试了批量标准化,主要是利用其加快收敛的能力 虽然它提供了预期的速度优势,但我也观察到一些奇怪的症状: 验证指标远远不够好。当然,它闻起来有点太合适了 在训练过程中的任何一点上计算出的预测都是完全错误的,特别是当从训练数据集中拾取图像时;相应的指标与(val_损失,val_acc)匹配,而不是与培训期间打印的(损失,acc)匹配 这种无法预测的现象是我最担心的证据。一个与训练中预测不一样的模型是无用的 搜查 在谷歌上搜索,我
- 验证指标远远不够好。当然,它闻起来有点太合适了
- 在训练过程中的任何一点上计算出的预测都是完全错误的,特别是当从训练数据集中拾取图像时;相应的指标与(val_损失,val_acc)匹配,而不是与培训期间打印的(损失,acc)匹配
- 我使用的keras 2.2.4来自Python3.6虚拟环境(在pyenv/virtualenv下)李>
- 数据通过一个经典的
+ImageDataGenerator()
/flow\u from\u directory()
方案进行传输(虽然放大被关闭:只应用了flow\u from\u dataframe()
),但我也尝试将它们设置为静态rescale=1./255
- 实际上,最后,为了验证上述行为,我只生成了一个数据集
,并使用一个独特的批处理方案进行培训和验证。在培训方面,它会收敛(是的,目的就是让它过度拟合!),而在验证方面,这两个指标都很差,预测完全错误且不稳定(几乎是随机的)x,y=next(valid\u generator)
- 在此设置中,如果BN关闭,
和val_loss
与val_acc
和loss
完全匹配,并且与我可以从训练结束后计算的预测中获得的匹配acc
我将尽快在这里发布一个最小的示例以及具体的模块版本。您必须包括您的示例(我们可以运行的实际代码),根据您的说法,您的示例已被破坏,我已经多次使用Keras的BN层,它工作正常,所以我不清楚您遇到的确切问题。请参阅谢谢@OverLordGoldDragon,我查看了链接并再次发现。那么Keras BN肯定被窃听了,每个使用它的人都接受从中获取不合理的预测?真不敢相信this@Matias,给你,第一个声称它很好用的人。我将尽快发布我自己的简约代码示例(顺便说一句,之前的注释链接包括代码(但没有解决方案)。提供的链接@OverLordGoldDragon显示了tf.keras中的问题,而不是keras,它们是不同的实现。tf.keras中肯定会有bug,因此示例非常重要。您必须包含示例(我们可以运行的实际代码)据你所说,我已经使用过Keras的BN层很多次了,效果很好,所以我不清楚你到底有什么问题。谢谢@OverLordGoldDragon,我再次查看了链接并发现了。所以Keras BN肯定被窃听了,所有使用它的人都接受从中获得没有意义的预测?我不敢相信this@Mati作为,