如果损失波动,最终的训练步骤可能不会具有最低的损失。
我想知道,如果在 Keras 中训练模型进行验证,Keras 如何选择最终模型?
有
- Keras 选择整个训练过程中验证数据损失最低的模型?
或者
- Keras 从最终训练步骤中选择最终模型,无论最终模型是否在验证数据上给出最小损失?
谢谢。
最佳答案
是的,默认情况下,Keras 从最终训练步骤返回最终模型,无论最终模型是否给出验证数据的最小损失。
如果您想使用验证数据损失最低的模型,则需要使用ModelCheckpoint带参数 save_best_only
的回调。训练完成后,您需要加载保存的模型。就验证数据损失而言,这将是最好的模型。
save_best_model = ModelCheckpoint(best_model_path, monitor='val_loss',
save_best_only=True, save_weights_only=True)
# fit model
model.fit(X_train, y_train,
batch_size=64,
epochs=35,
validation_data=(X_val, y_val),
callbacks=[save_best_model])
# select the best model
model.load_weights(best_model_path)
关于validation - 如果给出验证数据,Keras 如何选择最终模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65351960/