У меня есть функция генератора, которая генерирует наборы (входы, цели), на которых обучается моя модель, используя метод fit_generator()
в Керасе.
Мой набор данных разделен на 9 равных частей. Я хочу выполнить перекрестную проверку с отрывом от одного набора данных, используя метод fit_generator()
, и сохранить изученные параметры предыдущего обучения без изменений.
Мой вопрос заключается в том, что вызовет fit_generator()
несколько раз для модели, чтобы она заново изучила свои изученные параметры на предыдущем поезде и проверочные наборы с нуля, или он сохранит эти изученные параметры без изменений, что приведет к повышению точности?
После небольшого копания я обнаружил, что метод fit()
в Keras сохраняет изученные параметры, как здесь Многократный вызов "fit" в Keras , но я не уверен, что то же самое происходит для fit_generator()
и, если это возможно, может использоваться для перекрестной проверки данных.
Псевдокод, который я собираюсь реализовать для перекрестной проверки, выглядит следующим образом:
class DatasetGenerator(Sequence):
def __init__(validation_id, mode):
#Some code
def __getitem__():
#The generator function
#Some code
return (inputs, targets)
for id in range(9):
train_set = DatasetGenerator(id, 'train')
#train_set contains all 8 parts leaving the id part out for validation.
validation_set = DatasetGenerator(id, 'val')
#val_set contains the id part.
history = model.fit_generator(train_set, epochs = 10, steps_per_epoch = 24000, validation_data = val_set, validation_steps = 3000)
print('History Dict:', history.history)
results = model.evaluate_generator(test_set, steps=steps)
print('Test loss, acc:', results)
Будет ли model
сохранять изученные параметры без изменений и улучшать их для каждой итерации цикла for
?