Tensorflow Keras не может правильно возобновить обучение в начальную эпоху из файла контрольных точек - PullRequest
0 голосов
/ 21 мая 2019

Я загружаю модель 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 эпох обучения

1 Ответ

0 голосов
/ 28 июня 2019

Я заметил, что вы забыли поставить подчеркивание в epoch_count. Это может быть причиной этого.

...