Я новичок в области глубокого обучения и Keras, и пытаюсь сделать мою классификацию моделей более точной. Поскольку данных всего 75, поэтому я разделил 60 для обучения и 15 для проверки (80/20), так что это легко переоснастить. Я пытался добавить больше слоев, больше единиц, уменьшая слои, единицы, увеличивая и уменьшая скорость обучения, и т. Д. c для лучшей производительности.
Из предыдущих прогонов я знаю, что моя val_a cc уменьшается до 0,8 примерно за 100-150 эпох, поэтому я хочу прекратить тренировки в это время, чтобы избежать снижения.
В настоящее время я тренируюсь с партией размер 5, каждая подгонка выполнена из 350 эпох. Теперь я хочу использовать метод раннего останова, чтобы остановиться в ближайшую эпоху точности обучения и проверки, но пока это не удалось.
Я попытался установить монитор 'val_a cc', по крайней мере, базовое значение достигнет 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)
Почему он останавливается так рано, не достигнув базовой линии? Есть причина для этого? Как мне настроить функцию, чтобы она соответствовала моим ожиданиям? Или есть какие-либо полезные методы, которые можно применять для получения максимальной точности проверки?
Спасибо!