Keras 中的 validation_split=0.2 是交叉验证吗?

Posted

技术标签:

【中文标题】Keras 中的 validation_split=0.2 是交叉验证吗?【英文标题】:Is validation_split=0.2 in Keras a cross-validation? 【发布时间】:2021-09-26 09:34:56 【问题描述】:

我是一名自学成才的 Python 用户。 在 Python 代码中,

model.fit(x_train, y_train, verbose=1, validation_split=0.2, shuffle=True, epochs=20000)

然后,80%的数据用于训练,20%用于验证,epoch重复20000次进行训练。

还有,

shuffle=True

所以,我认为这段代码是一个交叉验证,或者更具体地说,是一个 k=5 的 k-divisional 交叉验证。 我想知道这是否正确,因为当我查找用于 k 折交叉验证的 Keras 代码时,我发现了一些使用 Scikit-learn 的 Kfold 的代码。

对于这个问题的基本性质,我深表歉意,但如果你能帮助我,我将不胜感激。

【问题讨论】:

【参考方案1】:

模型首先打乱数据,然后将其拆分以进行训练和验证 对于下一个 epoch,在第一个 epoch 中已经定义了 train & validation,所以它不会再次shuffle & split,而是使用之前定义的数据集。

因此,这是一个交叉验证。

【讨论】:

以上是关于Keras 中的 validation_split=0.2 是交叉验证吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 model.fit() 和 validation_split 后获取训练/测试数据

使用 ImageDataGenerator 时 Keras 拆分训练测试集

基于sklearn和keras的数据切分与交叉验证

在 Keras 的批量训练期间显示每个 epoch 的进度条

训练自己的验证码识别器

使用 validation_split 处理我的形状,为啥?