我试图自动确定Keras自编码器何时收敛。例如,查看此链接中的“让我们构建最简单的自编码器”。epoch数量在50个时(当损失值收敛时),是硬编码的。然而,如果您不知道数字是50,您该如何使用Keras进行编码?您只需不断调用fit()
吗?
我试图自动确定Keras自编码器何时收敛。例如,查看此链接中的“让我们构建最简单的自编码器”。epoch数量在50个时(当损失值收敛时),是硬编码的。然而,如果您不知道数字是50,您该如何使用Keras进行编码?您只需不断调用fit()
吗?
这个问题实际上非常广泛而且困难。有许多技术可以设置epoch的数量:
Keras
中,您有一个特殊的对象叫做EarlyStopping可以为您完成此工作。当然,还有其他情况,例如使用强化学习来找到停止时间或更复杂的情况,例如在贝叶斯超参数设置中选择此选项,但这些方法通常更难以实现且不会带来任何改善。
确定的一点是,重新启动fit
方法可能会导致意外行为,因为模型的许多内部状态被重置,这可能会导致不稳定性。对于这种情况,我强烈建议您使用train_on_batch
,该方法不会重置模型状态并且可以实现许多高级训练场景。