首页 文章

Tensorflow:损失减少,但精度稳定

提问于
浏览
8

我的团队正在Tensorflow中培训CNN,对损坏/可接受的部件进行二元分类 . 我们通过修改cifar10示例代码来创建代码 . 在我之前使用神经网络的经验中,我总是训练直到损失非常接近0(远低于1) . 然而,我们现在正在训练期间(在单独的GPU上)使用验证集来评估我们的模型,并且看起来精确度在大约6.7k步之后停止增加,而在超过40k步之后损失仍然稳定地下降 . 这是由于过度拟合吗?一旦损失非常接近零,我们是否应该看到准确度再次出现飙升?目前的最大精度是不可接受的 . 我们应该杀了它并继续调整吗?您有什么推荐的吗?以下是我们修改后的代码和培训流程图 .

https://gist.github.com/justineyster/6226535a8ee3f567e759c2ff2ae3776b

Precision and Loss Images

2 回答

  • 9

    二元交叉熵损失的减少并不意味着准确度的提高 . 考虑标签1,在时间步长1,2,3和分类阈值0.5处预测0.2,0.4和0.6 . 时间步长1和2将导致损失减少但准确度没有增加 .

    通过过度拟合训练数据,确保您的模型具有足够的容量 . 如果模型过度拟合训练数据,则通过使用正弦化技术(例如,丢失,L1和L2正则化以及数据增强)来避免过度拟合 .

    最后,确认您的验证数据和培训数据来自同一分发 .

  • 0

    以下是我的建议,其中一个可能的问题是您的网络开始记忆数据,是的,您应该增加正规化,

    是的,杀死它,减少训练损失,并具有稳定的验证精度,这意味着你的网络容量低(弱模型)试图更深入 .

相关问题