TF/Keras:ModelCheckpoint“期间”和“save_best_only”

Aer*_*ysS 3 keras tensorflow

如果我使用 Keras 回调ModelCheckpoint,并输入save_best_only = Trueperiod=3,模型将如何保存?3 个周期后,它会保存该 3 个周期中的最佳结果,还是仅保存所有 epoch 中的最佳结果?
我使用的一段代码:

mcp = tf.keras.callbacks.ModelCheckpoint("my_model.h5", monitor="val_accuracy",
                        save_best_only=True, period=3)
Run Code Online (Sandbox Code Playgroud)

tod*_*day 6

首先,根据文档period不推荐使用 argument ,取而代之的是save_freqargument (如果将其分配给一个int,它将考虑已见批次的数量,而不是纪元)。但为了向后兼容,这个period争论仍然有效。

但为了找到你问题的答案,我们需要检查ModelCheckpoint回调的源代码。实际上,到目前为止所看到的受监控指标的最佳值仅经过纪元(自上一个检查点以来)时才会更新。并且。由于迄今为止看到的最佳指标值仅与当前 epoch 的监控指标值进行比较,因此我们可以得出结论,仅比较并保存 epoch 、、等epoch 中性能最佳的模型,以及这些模型之间的模型性能epochs被忽略periodperiod2*period3*period