Вывод keras model.fit - "val_accuracy улучшено с -inf до 0.29846" - что это значит под -inf? - PullRequest
0 голосов
/ 01 марта 2020

Я тренирую модель CNN, используя керасы.

После окончания каждой эпохи я сохраняю веса в качестве контрольных точек, если точность проверки повысилась.

from keras.callbacks import ModelCheckpoint


checkpoint = ModelCheckpoint(checkpoint_path, monitor='val_accuracy', mode='max', 
save_best_only=True, verbose=1)

callbacks = [checkpoint]

#load checkpoints if existing
import os

num_of_epochs = 65
epochs_done = 0

if(os.path.exists(checkpoint_path)):
    model.load_weights(checkpoint_path)
    num_of_epochs = num_of_epochs - epochs_done
    print('checkpoints loaded')

При перезапуске Тренировка после остановки, вот как выглядит мой первый результат за эпоху.

Epoch 1/65
425/425 [==============================] - 224s 526ms/step - loss: 2.1739 - accuracy: 0.2939 - val_loss: 2.1655 - val_accuracy: 0.2985

Epoch 00001: val_accuracy improved from -inf to 0.29846, saving model to checkpoints-finetuning.hdf5

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

1 Ответ

1 голос
/ 01 марта 2020

Это потому, что экземпляр обратного вызова воссоздается каждый раз, когда вы запускаете скрипт; это не сохраняется с моделью. Таким образом, первая эпоха всегда начинается со значения по умолчанию, равного np.Inf или -np.Inf согласно здесь.

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