我的模型在第4个纪元后停止训练,即使我期望它在这之后继续训练。我已经将显示器设置为验证丢失和耐心等级为2,我认为这意味着在验证损失连续增加2个时期后,训练停止。但是,培训似乎在此之前停止。早期停止回调在Keras中表现神秘
我定义EarlyStopping如下:
callbacks = [
EarlyStopping(monitor='val_loss', patience=2, verbose=0),
]
并且在拟合函数我用这样的:
hist = model.fit_generator(
generator(imgIds, batch_size=batch_size, is_train=True),
validation_data=generator(imgIds, batch_size=batch_size, is_val=True),
validation_steps=steps_per_val,
steps_per_epoch=steps_per_epoch,
epochs=epoch_count,
verbose=verbose_level,
callbacks=callbacks)
我不明白为什么第四纪元后训练结束。
675/675 [==============================] - 1149s - loss: 0.1513 - val_loss: 0.0860
Epoch 2/30
675/675 [==============================] - 1138s - loss: 0.0991 - val_loss: 0.1096
Epoch 3/30
675/675 [==============================] - 1143s - loss: 0.1096 - val_loss: 0.1040
Epoch 4/30
675/675 [==============================] - 1139s - loss: 0.1072 - val_loss: 0.1019
Finished training intermediate1.
什么是从时代1 val_loss? –
第一行 - 0.0860 @NicoleWhite – megashigger
哎呀,我明白了。如果任何事情在时代3之后应该停止,因为在时代2或3中,从时代1的损失不会有所改善。您可以在回调中设置verbose = 1并显示它说的内容吗? –