我正在使用keras训练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
每次重新开始训练时,我都会在第一个时期注意到这种情况。为什么会发生?每次重新启动时,检查点文件会被更差的精确权重覆盖吗?
答案 0 :(得分:1)