我是深度学习和 Keras 的新手,并尝试使我的模型分类更准确。因为只有 75 个数据,所以我将 60 个用于训练和 15 个用于验证(80/20)分开,所以很容易过拟合。我尝试添加更多层、更多单元、减少层、单元、增加和减少学习率等以获得更好的性能。
从之前的运行中,我知道我的 val_acc 在大约 100-150 个时期内下降到 0.8,所以我想在那个时候停止训练以避免下降。
我目前以 5 的批大小进行训练,每次拟合由 350 个 epoch 组成。现在我想使用 Earlystopping 在最接近的训练和验证准确度时期停止,但还没有成功。
我尝试将监视器“val_acc”设置为至少达到基线值为 0.8,然后添加 min_delta = 0.01,以期仅在达到基线后应用此规则,但这没有帮助。加了早停功能后,为什么还没达到基线就这么早停了?每次我改变耐心时,训练都会停止在“那个”耐心。
#early stopping
from Keras.callbacks import EarlyStopping
early_stopping= keras.callbacks.EarlyStopping(monitor='val_acc', min_delta=0.01, patience=5, verbose=0, mode='max', baseline=0.8, restore_best_weights=False)
train_history =model.fit(X_train, train_Label,batch_size=5,
epochs=300,verbose=2,callbacks=[early_stopping],
validation_split=0.2)
为什么这么早就停止了,没有达到基线?这有什么原因吗?我应该如何调整功能以满足我的期望?或者是否有任何好的实践可以用来获得最高的验证准确性?
谢谢!