Как Keras действительно соответствует моделям эпох - PullRequest
3 голосов
/ 04 июня 2019

Я немного запутался в том, как Keras подходит для моделей.В общем, модели Keras подбираются просто с помощью model.fit(...) что-то вроде следующего:

model.fit(X_train, y_train, epochs=300, batch_size=64, validation_data=(X_test, y_test))

Мой вопрос таков: поскольку я указывал данные тестирования в качестве аргумента validation_data=(X_test, y_test), означает ли это, что каждая эпоханезависим?Другими словами, я понимаю, что в каждую эпоху Keras обучает модель с использованием данных обучения (после перетасовки), а затем тестирует обученную модель с использованием предоставленных validation_data.Если это так, то независимо от того, сколько эпох я выберу, я беру только результаты прошлой эпохи !!

Если этот сценарий верен, то нам нужны несколько эпох?Если только эти эпохи не являются зависимыми, то есть где каждая эпоха использует одинаковые веса NN из предыдущей эпохи, верно?

Спасибо

1 Ответ

3 голосов
/ 04 июня 2019

Когда Keras подходит для вашей модели, он проходит через все наборы данных в каждой эпохе с шагом, соответствующим вашему batch_size.
Например, если у вас есть набор данных из 1000 элементов и batch_size 8, вес вашей модели будетобновлять, используя 8 элементов, и так до тех пор, пока не будут просмотрены все ваши данные.

В конце той эпохи модель попытается сделать прогноз для вашего набора проверки.
Если мы сделалитолько одна эпоха, это будет означать, что вес модели обновляется только один раз для каждого элемента (потому что он только «видел» один раз полный набор данных).
Но чтобы минимизировать функцию потерь и путем обратного распространения, нам нужнообновлять эти веса несколько раз, чтобы достичь оптимальной потери, поэтому передайте все наборы данных несколько раз, иными словами, несколько эпох.

Надеюсь, все ясно, спросите, нужна ли вам дополнительная информация.

...