У меня простой вопрос: какие данные проверки передаются в 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
(к которым можно получить доступ из обратных вызовов). keras.models.training.fit
также вызывает keras.models.training._fit_loop
, который добавляет данные проверки к callbacks.validation_data
, а также вызывает keras.models.training._test_loop
, который циклически обрабатывает данные проверки в пакетах на self.test_function
модели. Результат этой функции используется для заполнения значений журналов, которые являются значениями, доступными из обратных вызовов.
Увидев все это, я чувствую, что набор проверки, переданный в model.fit
, не используется для проверки чего-либо во время обучения, и его единственное использование - получить обратную связь о том, как обученная модель будет работать в каждую эпоху для полностью независимого набора. Следовательно, было бы нормально использовать один и тот же набор для проверки и тестирования, не так ли?
Может ли кто-нибудь подтвердить, имеет ли проверка, установленная в model.fit, какая-либо другая цель, кроме чтения из обратных вызовов?