Keras:提早停止模型保存 [英] Keras: early stopping model saving

查看:216
本文介绍了Keras:提早停止模型保存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前,我正在像这样在Keras中使用提前停车:

For now I'm using early stopping in Keras like this:

X,y= load_data('train_data')
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=12)

datagen = ImageDataGenerator(
    horizontal_flip=True,
    vertical_flip=True)

early_stopping_callback = EarlyStopping(monitor='val_loss', patience=epochs_to_wait_for_improve)
history = model.fit_generator(datagen.flow(X_train, y_train, batch_size=batch_size),
            steps_per_epoch=len(X_train) / batch_size, validation_data=(X_test, y_test),
            epochs=n_epochs, callbacks=[early_stopping_callback])

但是在model.fit_generator的末尾,它将在epochs_to_wait_for_improve之后保存模型,但是我想用最小的val_loss保存模型,这有意义吗,有可能吗?

But at the end of model.fit_generator it will save model after epochs_to_wait_for_improve, but I want to save model with min val_loss does it make sense and is it possible?

推荐答案

是的,可以再进行一次回调,这是代码:

Yes, it's possible with one more callback, here is the code:

early_stopping_callback = EarlyStopping(monitor='val_loss', patience=epochs_to_wait_for_improve)
checkpoint_callback = ModelCheckpoint(model_name+'.h5', monitor='val_loss', verbose=1, save_best_only=True, mode='min')
history = model.fit_generator(datagen.flow(X_train, y_train, batch_size=batch_size),
            steps_per_epoch=len(X_train) / batch_size, validation_data=(X_test, y_test),
            epochs=n_epochs, callbacks=[early_stopping_callback, checkpoint_callback])

这篇关于Keras:提早停止模型保存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆