趋近智
训练过程完成后,下一步是确定你的自编码器在重建输入数据方面表现如何。训练期间,模型努力使损失函数(如均方误差,MSE)最小化。现在,我们需要公正评估它在从未见过的数据上的表现。
你可能会想,为什么不能只看训练过程的最终损失值。因为训练损失只告诉我们模型在学习过的数据上的表现,而不能说明它对新的、未见过的数据的泛化能力。一个模型可能在训练数据上表现完美,但在新数据上却表现不佳,这被称为过拟合。为了得到更可靠的评估,我们使用一个独立的“测试集”,它包含训练阶段未使用过的样本。
定量评估重建质量最直接的方法是使用测试集计算损失函数。如果你训练自编码器是为了最小化 MSE,那么你将计算测试集中原始图像与重建图像之间的 MSE。
记住均方误差(MSE)的公式: L(x,x^)=N1∑i=1N(xi−x^i)2 这里,x 代表原始输入,hatx 是重建输出,N 是像素数量。较低的 MSE 值表示重建输出平均而言更接近原始输入,这表明重建质量更好。
在 Keras 中,一旦模型训练完成,你可以使用 autoencoder.evaluate() 方法轻松评估其性能:
# 假设 x_test 是你预处理过的测试数据集
# 对于自编码器,评估的输入和目标是相同的
test_loss = autoencoder.evaluate(x_test, x_test, verbose=0)
print(f"Test MSE: {test_loss}")
autoencoder.evaluate() 方法计算提供的 x_test 数据上的损失。由于自动编码器旨在重建其输入,因此评估的输入和目标都是 x_test。test_loss 变量将保存测试集的 MSE。
那么,你得到的测试损失数值意味着什么呢?
这种数值评估平均表明了重建图像与原始图像的接近程度。良好的重建质量(低误差)意味着编码器在瓶颈层中学会了创建有用的、压缩的表示,解码器可以从中有效重建原始数据。
尽管这种定量衡量很重要,但它通常需要辅以对重建图像的定性、视觉检查。眼见为实。在下一节,我们将进行此项操作,让你更直观地感受自动编码器的表现。
这部分内容有帮助吗?
Sep 5, 2025
更新以使用 Pytorch 和 Keras 3 代替 Tensorflow
tf.keras.Model.evaluate, Keras Team, 2023 - Keras 中 evaluate 方法的官方文档,详细说明其用法、参数和返回值,用于评估模型性能。© 2026 ApX Machine Learning用心打造