Ответ 1
На этот вопрос это простой ответ от основного автора:
С помощью
fit_generator
вы можете использовать генератор для данных проверки как Что ж. В общем, я бы рекомендовал использоватьfit_generator
, но используяtrain_on_batch
тоже отлично работает. Эти методы существуют только ради удобство в разных случаях использования, нет "правильного" метода.
train_on_batch
позволяет вам явно обновлять веса на основе предоставленной вами выборки, независимо от фиксированного размера партии. Вы бы использовали это в тех случаях, когда это то, что вы хотите: тренироваться на явном наборе образцов. Вы можете использовать этот подход, чтобы поддерживать свою собственную итерацию в нескольких пакетах традиционного обучающего набора, но позволить fit
или fit_generator
повторять пакеты для вас, вероятно, проще.
Одним из случаев, когда было бы целесообразно использовать train_on_batch
, является обновление предварительно обученной модели в одной новой партии образцов. Предположим, вы уже обучили и развернули модель, и через некоторое время вы получили новый набор обучающих образцов, которые ранее никогда не использовались. Вы можете использовать train_on_batch
для непосредственного обновления существующей модели только на этих выборках. Другие методы также могут сделать это, но для этого случая достаточно использовать train_on_batch
.
Помимо особых случаев, подобных этому (либо если у вас есть какая-то педагогическая причина для поддержания собственного курсора в разных пакетах обучения, либо для какого-либо полуавтоматического обновления обучения в специальной серии), вероятно, лучше всегда использовать fit
(для данных, которые помещаются в память) или fit_generator
(для потоковой передачи пакетов данных в качестве генератора).