keras model.fit输出-“ val_accuracy从-inf改进为0.29846”--inf是什么意思?

时间:2020-03-01 02:40:31

标签: python tensorflow machine-learning keras deep-learning

我正在使用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

每次重新开始训练时,我都会在第一个时期注意到这种情况。为什么会发生?每次重新启动时,检查点文件会被更差的精确权重覆盖吗?

1 个答案:

答案 0 :(得分:1)

这是因为每次运行脚本时都会重新创建回调实例。它不会随模型一起保存。这样,第一个纪元将始终从默认值开始,该默认值根据this right here.

np.Inf-np.Inf