Обратный вызов Keras ModelCheckpoint не сохраняет веса - PullRequest
0 голосов
/ 03 ноября 2019

Предлагаемое здесь решение не решило мою проблему этот вопрос .

Я пытаюсь использовать обратные вызовы ModelCheckpoint и EarlyStopping, чтобы сохранить лучшие веса при ранней остановке. После первой эпохи я получаю предупреждение о времени выполнения, но коды запускают оставшиеся эпохи без ошибок, но по-прежнему не появляется файл, содержащий вес. Предупреждение после первой эпохи следующее:

RuntimeWarning: может сохранить лучшую модель только при наличии val_acc, пропуская. 'пропуская.'% (self.monitor), RuntimeWarning) RuntimeWarning: ранняя остановка обусловлена ​​метрикой val_acc, которая недоступна. Доступны следующие метрики: val_loss, val_accuracy, потеря, точность (self.monitor, ','. Join (список (logs.keys ()))), RuntimeWarning

У меня есть данные проверки, добавленные вfit() функция, поэтому я не уверен почему.

filepath = "weights_best.hdf5"

model.compile(loss="mean_squared_error",
                  metrics=['accuracy'],
                  optimizer=optimizer)
batchSize = 64 
numEpochs = 75
validation_data = (data.x_valid, data.y_valid)

callbackCheckpoint = keras.callbacks.callbacks.ModelCheckpoint(filepath,
                                                                   monitor='val_acc',
                                                                   save_best_only=True,
                                                                   save_weights_only= True,
                                                                   mode='max')

callbackEarlyStop = keras.callbacks.callbacks.EarlyStopping(monitor='val_acc',
                                                                min_delta=0,
                                                                patience=7,
                                                                verbose=0,
                                                                mode='auto')
callbacks = [callbackCheckpoint, callbackEarlyStop]
model.fit(data.x_train, data.y_train, batchSize, numEpochs, callbacks=callbacks,
              validation_data=validation_data)

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 06 ноября 2019

Измените monitor='val_acc' на monitor='val_accuracy' или metrics=['accuracy'] на metrics=['acc']

...