我使用tensorflow-gpu 1.9.0
是为了与GPU机器上的CUDA和cuDNN版本兼容。这可能是相关的。
我有一个卷积自动编码器,用于医学图像的特征提取。不用担心可能的过度拟合,我可以通过仅查看输出图像与输入图像来判断当前模型的“良好”程度(因为自动编码器仅尝试使用瓶颈功能来重建输入)。我知道模型不一定能更好地重构输入,从而提取出更多有用的功能,但这不是问题,也不是问题。
我的问题如下:训练损失和准确性在大约45个纪元后收敛。如果查看输出,我可以清楚地看到形状有点像原始图像(我在这里无法显示这些图像)。如果我继续训练模型,则损失不会继续减少(准确性也不会增加),但但是,模型在重构输入时会更好。我可以通过比较输入和输出来判断。
我已经为模型训练了1000个纪元。重建的图像比45历元模型的图像要好得多,但是两个模型的损失相同(0.0070),准确性相同。
这是完全出乎意料的行为。如果损失保持不变,模型怎么可能会变得更好?
我正在使用的损失函数为binary_crossentropy
。