python - Keras:提前停止模型保存

标签 python neural-network keras

现在我在 Keras 中使用这样的提前停止:

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 之后保存模型,但我想用 min val_loss 保存模型有道理吗?

最佳答案

是的,可以再回调一次,代码如下:

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])

关于python - Keras:提前停止模型保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44051402/

相关文章:

python - 即使 keras 中的精度为 1.00,categorical_crossentropy 也会返回较小的损失值

python - 在转换后的 tflite 模型上调用 `allocate_tensors()` 时出现运行时错误

python - 为什么 Liza Daly 的 fast_iter 使用 while 循环而不是 if 语句?

python - 如何获得两个 datetime.time Pandas 列之间的绝对差?

python - 无法进入lru_cache'_lru_cache_wrapper

machine-learning - 卷积神经网络

python - 为什么神经网络不学习?

machine-learning - 将 sklearn.svm SVC 分类器转换为 Keras 实现

python - 卷积层(CNN)在keras中如何工作?

python - 将字符串转换为原始字节