在没有验证集和图像规范化的情况下训练 Keras 模型

Training Keras model without validation set and normalization of images

我在 Python 上使用 Keras 来训练 CNN 自动编码器。在 fit() 方法中,我必须提供 validation_splitvalidation_data。首先,我想将 80% 的数据用作训练数据,将 20% 的数据用作验证数据(随机拆分)。一旦找到最佳参数,我想在所有数据上训练自动编码器,即不再使用验证集。

是否可以在不使用验证集的情况下训练 Keras 模型,即使用所有数据进行训练?

此外,我的图像中的像素都在[0,-0.04]范围内。是否仍然建议将训练和验证集中所有图像中的所有像素值归一化到范围 [0,1] 或 [-1,1] 或对其进行标准化(零均值,单位方差)?如果是这样,首选哪种方法?顺便说一句,我的图像实际上是 2D 热图(一个颜色通道)。

是的,你可以在没有验证数据的情况下训练 keras 模型,但这不是一个好的做法,因为那样你就不知道模型是否可以泛化。这同样适用于自动编码器,它们可能会过拟合训练集。

始终建议对您的输入进行归一化处理,尤其是在范围较大或较小的情况下。没有首选方法,任何规范化通常都是一样的。