在Keras中,如何从模型检查点获得纪元和验证损失?

时间:2018-11-19 18:12:07

标签: keras

从此处(https://keras.io/callbacks/#modelcheckpoint),您可以通过设置save_best_only来根据验证错误保存最佳模型。

我知道您可以通过将相应的纪元和验证错误写入检查点的文件名来保存它。但是,这意味着可以保存很多模型,我希望这会导致GPU上出现内存错误。

是否有一种方法可以获取与最终最佳模型相对应的历元和val损失,而不必将其写入文件名中?

1 个答案:

答案 0 :(得分:0)

取决于您要处理的时间和验证错误以及培训的时间,但是您可以非常轻松地实现自己的回调功能。您想要获得训练指标的是logs对象,该对象在每个回调事件中都传递给回调(请参见here)。

例如,如果您需要在每个纪元末尾以纪元和验证错误调用某个函数f,则可以使用LambdaCallback来实现:

keras.callbacks.LambdaCallback(on_epoch_end=lambda epoch, logs: f(epoch, logs['val_loss']))

如果相反,您想使用ModelCheckpoint回调但不希望它写入文件,则可以创建一个自定义的CallBack,以重写ModelCheck回调并更改保存行为(代码here)。

(不知道这是否能回答您的问题,不完全确定要求是什么)