确定 Keras 中模型拟合的时期数



我正在尝试自动确定 Keras 自动编码器何时收敛。例如,查看"让我们构建最简单的自动编码器"下的此链接。周期数在 50 处硬编码(当损失值收敛时(。但是,如果您不知道数字是 50,您将如何使用 Keras 对其进行编码?你会一直打电话给fit()吗?

这个问题实际上非常广泛和困难。关于如何设置纪元数,有许多方法:

  • 提前停止- 在这种情况下,您将 epoch 的数量设置为非常高的数字,并在下一个 epoch 的改进不令人满意时关闭训练。在Keras中,您有一个名为EarlyStop的特殊对象,它可以为您完成这项工作。
  • 模型检查点- 在这里,您再次设置了大量纪元,您只需将最佳模型 w.r.t. 保存到所选的指标中即可。同样,对于此方案,您有一个特殊的回调。

当然,还有其他场景,例如,当您在贝叶斯超参数设置中选择它时,使用强化学习来查找停止时间或更复杂的场景,但这些是更难的方法,通常不会带来任何改进。

可以肯定的是,重新启动fit方法最终可能会出现意外行为,因为模型的许多内部状态被重置,这可能会导致不稳定。对于此场景,我强烈建议您使用train_on_batch它不会重置模型状态,并使许多花哨的训练场景成为可能。

相关内容

  • 没有找到相关文章

最新更新