Keras 中未触发 EarlyStopping 时模型保存的行为

问题描述 投票:0回答:1

我目前正在使用以下代码对网络进行几个时期的微调:

es= keras.callbacks.EarlyStopping(monitor='loss', min_delta=1e-4,patience=10, verbose=True, restore_best_weights=True)
history = model.fit(ft, steps_per_epoch=len(ft), callbacks=[es], epochs=150, verbose=verbose)
model.save('model_best.h5')

我理解,如果10个epoch(由

monitor='loss'
确定)的损失(由
patience=10
监控)没有改善,则激活EarlyStopping回调,并保存恢复到最佳遇到权重的模型权重.

我的问题是关于 EarlyStopping 不触发的场景 - 例如,如果不存在没有改进的 10 个 epoch 序列,但表现最好的 epoch 不是最后一个。在这种情况下,哪些权重被保存?它们是来自最后一个时期的权重还是来自训练期间观察到的最佳时期的权重?值得注意的是,当

verbose=True
时,如果 EarlyStopping 回调没有触发,它不会产生任何输出,让我不确定保留哪个模型版本。有人可以澄清在这种情况下会发生什么吗?

tensorflow keras early-stopping
1个回答
0
投票

默认情况下,模型不会自动保存最佳权重 表演

epoch
。您需要使用显式配置此行为 类似于 keras 或 TensorFlow 等库中的 modelcheckpoint 的回调。

我附上要点文件供您参考

© www.soinside.com 2019 - 2024. All rights reserved.