首页 > 解决方案 > TF/Keras:ModelCheckpoint "period" 和 "save_best_only"

问题描述

如果我使用 Keras 回调ModelCheckpoint,并且我把save_best_only = Trueand period=3,模型将如何保存?在 3 个时期之后,它保存了 3 个时期的最佳结果,还是只保存了所有时期中最好的一个?
我使用的一段代码:

mcp = tf.keras.callbacks.ModelCheckpoint("my_model.h5", monitor="val_accuracy",
                        save_best_only=True, period=3)

标签: tensorflowkeras

解决方案


首先,根据文档period不推荐使用参数来支持save_freq参数(如果分配给 a int,它将考虑看到的批次数而不是时期)。但是为了向后兼容,这个period论点仍然有效。

但是要找出问题的答案,我们需要检查源代码是否有ModelCheckpoint回调。实际上,到目前为止看到的监控指标的最佳值只有epochs 已经过去(自最后一个检查点以来)时才会更新。并且。由于目前看到的最佳度量值与仅当前 epoch 的监控度量值进行比较,因此我们可以得出结论,仅比较和保存 epochs 、 、 等中表现最好模型,以及它们之间的模型性能epochs被忽略periodperiod2*period3*period


推荐阅读