Я провожу тренировочный заезд и заканчиваю следующим выводом из модели KERAS NN. Я добавил вывод матрицы путаницы для качества модели
...
Эпоха 09998: val_acc не улучшился с 0.83780
Эпоха 9999/10000
12232/12232 [====================================] - 1с 49us / шаг - потеря: 0,2656 - согласно: 0,9133 - val_loss : 0,6134 - val_acc: 0,8051
Эпоха 09999: val_acc не улучшился с 0.83780
Эпоха 10000/10000
12232/12232 [====================================] - 1 с 48us / шаг - потеря: 0,2655 - согласно: 0,9124 - val_loss : 0,5918 - val_acc: 0,8283
Эпоха 10000: val_acc не улучшился с 0.83780
3058/3058 [==============================] - 0s 46us / step
в соотв. 82,83%
Качество модели
Tn: 806 Tp: 1727 Fp: 262 Fn: 263
Точность: 0,8683 Напомним: 0,8678 Точность 0,8283 F, оценка 0,8681
Затем я изменяю гиперпараметр, перезагружаю все и перекомпилирую, используя следующий код
# prep checkpointing
model_file = output_file.rsplit('.',1)[0] + '_model.h5'
checkpoint = ModelCheckpoint(model_file, monitor='val_acc', verbose=1,
save_best_only=True, save_weights_only=True, mode='max')
callbacks_list = [checkpoint]
model.load_weights(model_file) # - commented out first time thru, reload second time thru
adam = optimizers.Adam(lr=l_rate, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)
model.compile(loss='binary_crossentropy', optimizer=adam, metrics=['accuracy'])
model.fit(X_train, Y_train, validation_data=(model_test_X, model_test_y),
batch_size = batch_s, epochs=num_epochs,
callbacks=callbacks_list, verbose=1)
После перезапуска я бы ожидал, что лучшая точность будет такой, как была выше. В этом случае val_acc = 0,83780
Однако, после первых двух эпох, я получаю такой вывод:
Эпоха 1/10000
12232/12232 [====================================] - 1 с 99us / шаг - потеря: 0,2747 - согласно: 0,9097 - val_loss : 0,6191 - val_acc: 0,8143
Epoch 00001: val_acc улучшен с -inf до 0.81426, сохраняя модель в Data_model.h5
Эпоха 2/10000
12232/12232 [====================================] - 1с 42us / шаг - потеря: 0,2591 - согласно: 0,9168 - val_loss : 0,6367 - val_acc: 0,8322
Epoch 00002: val_acc улучшен с 0,81426 до 0,83224, сохраняя модель в Data_model.h5
Эпоха 3/10000
12232/12232 [====================================] - 1с 44us / шаг - потеря: 0.2699 - согласно: 0.9140 - val_loss : 0,6157 - val_acc: 0,8313
Эпоха 00003: val_acc не улучшился с 0.83224
......
Хотя я понимаю, что модель может начинаться с другого места, я предполагал, что наилучший уровень точности (val_acc) был бы перенесен с предыдущего запуска.
Мой вопрос: я что-то упустил?