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 拆分训练测试集