损失和准确性收敛,但模型仍在改进

时间:2019-04-15 11:08:59

标签: python tensorflow keras conv-neural-network autoencoder

我使用tensorflow-gpu 1.9.0是为了与GPU机器上的CUDA和cuDNN版本兼容。这可能是相关的。

我有一个卷积自动编码器,用于医学图像的特征提取。不用担心可能的过度拟合,我可以通过仅查看输出图像与输入图像来判断当前模型的“良好”程度(因为自动编码器仅尝试使用瓶颈功能来重建输入)。我知道模型不一定能更好地重构输入,从而提取出更多有用的功能,但这不是问题,也不是问题。

我的问题如下:训练损失和准确性在大约45个纪元后收敛。如果查看输出,我可以清楚地看到形状有点像原始图像(我在这里无法显示这些图像)。如果我继续训练模型,则损失不会继续减少(准确性也不会增加),但但是,模型在重构输入时会更好。我可以通过比较输入和输出来判断。

我已经为模型训练了1000个纪元。重建的图像比45历元模型的图像要好得多,但是两个模型的损失相同(0.0070),准确性相同。

这是完全出乎意料的行为。如果损失保持不变,模型怎么可能会变得更好?

我正在使用的损失函数为binary_crossentropy

1 个答案:

答案 0 :(得分:0)

您可以添加度量其他错误(例如MSE)的指标(https://keras.io/metrics/),并告诉我们其工作原理。