Я загружаю модель keras в тензор потока, чтобы возобновить обучение. Я хочу продолжить обучение с той эпохи, в которой остановился, чтобы номера эпох были уникальными, и я могу отслеживать количество эпох. Модель загружается из файла контрольных точек, созданного с помощью обратного вызова, который сохраняет высочайшую точность. Когда я возобновляю обучение в model.fit (), я устанавливаю «начальную эпоху» равной 52 и устанавливаю «эпоху» равной 52 + 5. Тем не менее, он начинает тренироваться с 1/57 эпохи вместо 53/57 и будет продолжать расти до 57, хотя я хочу только 5 эпох. Я загружаю что-то неправильно? Тренировки возобновляются как «нормальные», и точность - это то место, где я остановился, но числа эпох не продолжаются с того места, где я хочу, и продолжают перезапуск с 1.
Я попытался удалить инициализацию обратного вызова контрольной точки при загрузке из файла контрольной точки, но это приводит к ошибке имени, поскольку «список обратных вызовов» не определен.
model = load_model('my_model.hdf5')
checkpoint = ModelCheckpoint(cp_filepath, monitor='acc',
verbose=1, save_best_only=True, mode='max')
callbacks_list = [checkpoint]
bs=32 #batch size
epoch count=52
cur_epochs=5
model.fit(
training_set,
steps_per_epoch=len(training_set)//bs,
inital_epoch=epoch_count,
epochs=cur_epochs+epoch_count,
validation_data=test_set,
validation_steps=len(test_set)//bs,
callbacks=callbacks_list,
shuffle=True,
verbose=1
)
Я ожидаю увидеть эпохи 53/57 и 5 эпох тренировок при возобновлении из сохраненного файла.
Я получаю эпоху 1/57 и 57 эпох обучения