为什么Keras会为单个.fit运行写多个tensorboard日志?

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

我使用Keras和Google Cloud上的张量流后端运行一个convnet模型,使用tensorboard回调来保存训练历史记录的tfevents日志。当我监控学习曲线时,我注意到培训的一半(学习曲线处于高原状态),一个新的tfevents日志被保存到磁盘。而TensorBoard的学习曲线图表明,训练被重置为时代#1,val_loss也重置为划痕。

这真的很奇怪。有谁知道这里发生了什么?在什么情况下Keras会自动重启培训并保存新的tfevents日志?

keras tensorboard google-cloud-ml
1个回答
1
投票

事实证明,这个问题只发生在我在Google Cloud上运行代码时,而不是在我的本地机器上。 Google工程师证实,实际原因是Google的云端维护,而不是Keras! Google Compute Engine(GCE)实例有时会在没有任何警告或事先通知的情况下关闭进行维护(在此答案时也没有记录)。维护将导致训练实例从头开始重新启动,从而生成新的tfevents日志并重置所有先前的进度。

解决方案是频繁保存检查点,加载以前的模型(如果存在),并在重新启动时恢复训练。请注意,使用GCE时,必须使用Keras中的自定义Lambda回调函数将检查点保存到Google云端存储(GCS),否则您的检查点将在关闭时消失。

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