keras的ModelCheckpoint不起作用


8

我正在尝试在keras中训练模型,并使用ModelCheckpoint根据监视的验证指标(在我的情况下为Jaccard index)保存最佳模型。

虽然可以在tensorboard中看到模型的改进,但是当我尝试加载权重并评估模型时,它根本无法工作。此外,通过应该存储权重的文件上的时间戳,我可以知道它们根本没有被保存。时间戳大致对应于我开始训练的时间。

有人遇到过这样的问题吗?

Answers:


7

您是否ModelCheckpoint使用其默认参数(除外monitor)?

ModelCheckpoint有一个名为的参数mode,用于指定要使用的指标的类型mode可以接受3个值,'min' 'max'并且'auto'(这是默认值):

  • min:表示您想最小化指标(例如损失函数)。
  • max:表示您想最大化指标(例如准确性)。
  • auto:尝试自行决定要做什么。如果您查看代码,它将检查度量标准名称是否包含'acc'或以开头'fmeasure'。如果是,则将模式设置为max,否则将其设置为min

在您的情况下,您需要监视jaccard索引,该索引是您希望最大化的指标,因此您希望将模式设置为max。通常,因为“ jaccard”包含字符串“ acc”,即使将模式设置为该模式auto也可以正常工作。

但是,如果您将度量标准命名为任意值(例如my_metric),则默认模式将设置为min,这意味着它将存储在度量标准上获得最低性能的权重,该权重应该是第一个时期的权重。

建议:下次尝试mode='max'确定。


是的,你是对的。我已为度量标准命名intersection_over_union,它可能存储了得分最低的权重,这是第一个时期的权重。这很有意义。谢谢!
ILM91

别客气。很高兴我能帮上忙!
MzdR
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.