machine-learning - 在训练 Keras 模型时,当 valid_split 为 0 时,训练会发生什么情况?

标签 machine-learning keras

我指的是 Kerasfit 方法中的 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/

相关文章:

keras - 我如何用keras实现多标签分类神经网络

c# - 如何将validation_data传递给Model.fit + Dataset?

python - 一个问题以及如何在创建模型时处理批处理

matlab - 我怎样才能有效地找到分类器的准确性

python - 无法 reshape 包含 PNG 图像的 numpy 数组

machine-learning - 机器学习 (CNN/RNN) 的不平衡训练数据

tensorflow - 无法启用 Tensorflows Eager execution

machine-learning - Keras : reset with fit, 中的状态 LSTM 评估和预测?

machine-learning - 分类报告中的精确率和召回率是如何计算的?

machine-learning - 为什么IS曲线以(0,0)开始?