首页 > 解决方案 > 当我在 model.fit() 中使用 validation_split 时会发生什么

问题描述

model.fit()如果参数shufflevalidation_split分别设置为True和,则何时调用.25为验证预留的数据将始终相同,还是在每个 epoch 后更改验证数据?

model.fit(train_x,
          train_y,
          batch_size = 32,
          epochs = 1000,
          verbose = 1,
          shuffle = True,
          validation_split = .25)

标签: pythontensorflowvalidationmachine-learningkeras

解决方案


您将拥有相同的验证数据(主数据集的最后 25%)。您可以通过以下代码对其进行测试:

import numpy as np
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import *

trainX = np.zeros((1000, 1))
trainy = np.array(np.arange(10000)).reshape(1000, 10)

model = Sequential()
model.add(Input((1, )))
model.add(Dense(10))

opt = keras.optimizers.Adam(0)
model.compile(opt, 'mae')

model.fit(trainX, trainy, epochs = 10, shuffle = True, validation_split = 0.2)

推荐阅读