我指的是 Keras 的 fit
方法中的 validation_split
参数。 :
validation_split: Float between 0 and 1. Fraction of the training data to be used as validation data. The model will set apart this fraction of the training data, will not train on it, and will evaluate the loss and any model metrics on this data at the end of each epoch. The validation data is selected from the last samples in the x and y data provided, before shuffling.
我注意到默认值是 0,而不是传统的 0.2 或 0.33。我无法理解为什么他们选择使用 0 作为默认值,因为我认为没有验证集总是会导致训练过度拟合。我的假设错了吗?
最佳答案
验证集用于检测过度拟合,没有验证集仅意味着您无法检测过度拟合。这并不意味着模型会自动过度拟合。请记住,验证数据根本不用于训练模型,因此如果不使用验证数据,模型的行为不可能有所不同。
也就是说,默认没有验证集是有道理的,因为最终是人类通过查看学习曲线以及训练和验证损失之间的差异来检测过度拟合。此过程(目前)无法自动化,因此人类必须决定验证分割的值,或者只是在 validation_data
参数中自行提供验证数据。
关于machine-learning - 在训练 Keras 模型时,当 valid_split 为 0 时,训练会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57464367/