我的问题很简单, 什么是验证数据 传递给Sequential模型中的model.fit 用于?
并且,它是否会影响模型的训练方式(通常使用验证集,例如,在模型中选择超参数,但我认为这不会发生在这里)?
我在谈论可以像这样传递的验证集:
# Create model
model = Sequential()
# Add layers
model.add(...)
# Train model (use 10% of training set as validation set)
history = model.fit(X_train, Y_train, validation_split=0.1)
# Train model (use validation data as validation set)
history = model.fit(X_train, Y_train, validation_data=(X_test, Y_test))
我调查了一下,我看到了 keras.models.Sequential.fit
电话 keras.models.training.fit
,创建变量,如 val_acc
和 val_loss
(可以从Callbacks访问)。 keras.models.training.fit
也叫 keras.models.training._fit_loop
,将验证数据添加到 callbacks.validation_data
,还有电话 keras.models.training._test_loop
,它将批量循环验证数据 self.test_function
该模型。此函数的结果用于填充日志的值,这些值是可从回调中访问的值。
看到这一切后,我觉得验证集传递给了 model.fit
在训练期间不用于验证任何东西,它的唯一用途是获得关于训练模型在完全独立集合的每个时期中的表现的反馈。因此,使用相同的验证和测试集是对的,对吧?
任何人都可以确认除了从回调中读取之外,model.fit中的验证集是否还有其他任何目标?