Как загрузить модель тензорного потока с помощью обратных вызовов ModelCheckpoint? - PullRequest
0 голосов
/ 12 февраля 2020

Я обучил модель и сохранил веса с помощью ModelCheckpoint:

checkpoint_callback = ModelCheckpoint(
    filepath = checkpoint_prefix,
    save_weights_only = True,
    save_freq = 'epoch')

В течение ночи, пока моя модель тренировалась, электричество отключилось на некоторое время, и мой компьютер выключился. Теперь я открыл ноутбук Jupyter и хочу загрузить свою модель, не тренируя ее с самого начала. Как я должен сделать это, не компилируя его снова и просто используя контрольные точки? У меня также есть обратные вызовы тензорной доски:

tensorboard_callback = TensorBoard(
    log_dir = 'tensorboard_logs\\'+ model_name,
    histogram_freq = 5,
    write_graph = True,
    update_freq = 'epoch')

1 Ответ

1 голос
/ 12 февраля 2020

Поскольку вы сохранили только веса вашей модели, вам необходимо восстановить график и загрузить на него веса последних контрольных точек.

Итак, вам нужно пересоздать вашу модель и скомпилировать ее.
В следующий раз, если вы хотите сохранить полную модель, чтобы вам не приходилось снова ее компилировать при каждой загрузке, установите save_weights_only на False.
Это позволит вам загрузить вашу модель с keras.models.load_model() и сразу же установить ее после.

model = Sequential()
model.add() 
...
model.compile()

А затем загрузить ваши веса:

model.load_weights(checkpoint_prefix)

и тогда вы можете использовать его как обычно:

model.fit( ... )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...