【发布时间】:2017-12-14 17:59:14
【问题描述】:
我正在尝试自动确定 Keras 自动编码器何时收敛。例如,查看“让我们尽可能构建最简单的自动编码器”下的 link。 epoch 的数量被硬编码为 50(当损失值收敛时)。但是,如果您不知道数字是 50,您将如何使用 Keras 进行编码?你会继续打电话给fit()吗?
【问题讨论】:
标签: machine-learning neural-network deep-learning keras autoencoder
我正在尝试自动确定 Keras 自动编码器何时收敛。例如,查看“让我们尽可能构建最简单的自动编码器”下的 link。 epoch 的数量被硬编码为 50(当损失值收敛时)。但是,如果您不知道数字是 50,您将如何使用 Keras 进行编码?你会继续打电话给fit()吗?
【问题讨论】:
标签: machine-learning neural-network deep-learning keras autoencoder
这个问题实际上非常广泛和困难。关于如何设置 epoch 的数量有很多技巧:
Keras 中,您有一个名为 EarlyStopping 的特殊对象,它可以为您完成这项工作。当然,还有其他场景,例如当您在贝叶斯超参数设置中选择此选项时,使用强化学习来查找停止时间或更复杂的场景,但这些方法更难,通常不会带来任何改进。
可以肯定的是,重新启动 fit 方法可能会导致意外行为,因为模型的许多内部状态被重置,这可能会导致不稳定。对于这种情况,我强烈建议您使用train_on_batch,它不会重置模型状态,并且可以实现许多花哨的训练场景。
【讨论】: