我的模型在第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並顯示它說的內容嗎? –