我正在使用tensorflow-gpu 1.9.0
来兼容我们在GPU机器上的CUDA和cuDNN版本。这可能是相关的。
我有一个卷积自动编码器,用于医学图像的特征提取。不用担心可能的过度拟合,我可以通过查看输出图像与输入图像的比较来判断当前模型的"好"程度(因为自动编码器尝试仅使用瓶颈特征重建输入)。我知道模型不一定能越好地重建输入,提取出更多有用的特征,但这不是问题也不是问题。
我的问题是:训练损失和准确性在大约 45 个 epoch 后收敛。如果我查看输出,我可以清楚地看到形状有点类似于原始图像(我无法在此处显示这些图像)。如果我继续训练模型,损失不会继续减少(准确性也不会增加),但是,模型在重建输入时会变得更好。我可以通过并排比较输入和输出来判断。
我已经训练了多达 1000 个 epoch 的模型。重建的图像比45个epoch模型的图像要好得多,但两个模型的损失相同(0.0070),精度相同。
这是一个完全出乎意料的行为。如果损失保持不变,模型怎么可能变得更好?
我正在使用的损失函数是binary_crossentropy
.
您可以添加衡量其他错误(如 MSE)的指标 (https://keras.io/metrics/),并告诉我们它是如何工作的。