При обучении сети необходимо заранее указывать количество эпох обучения. При этом не обязательно, что сеть с каждой эпохой будет становиться лучше.
Можно ли организовать обучение сети таким образом, чтобы после каждой эпохи сравнивать получившуюся сеть с лучшей? Чтобы после того, как пройдет заданное количество эпох, была получена лучшая сеть за все время обучения, а не сеть после обучения на заданное количество эпох.
Ответ
Вы можете воспользоваться callbacks для сохранения лучшей модели и для ранней остановки (чтобы избежать бесполезных вычислений и ускорить время обучения модели):
from keras.callbacks import EarlyStopping, ModelCheckpoint
early_stop = EarlyStopping(monitor='val_acc', min_delta=0.0001,
patience=5, verbose=1, mode='auto')
chkpt = ModelCheckpoint(model_filename,
monitor='val_loss',
verbose=1,
save_best_only=True,
mode='auto')
callbacks = [early_stop, chkpt]
hist = model.fit(x_train, y_train,
batch_size=Batch_size, epochs=Epochs,
validation_data=(x_val, y_val),
callbacks=callbacks)
Комментариев нет:
Отправить комментарий