我在使用Keras来预测时间序列。按照标准做法,我使用了20个epoch。我想通过预测每个epoch来检查我的模型是否学得好。
通过使用model.predict()
,我只能得到所有epoch中的一个预测(我不确定Keras是如何选择的)。我想要所有预测,或者至少是10个最好的预测。
有谁知道如何帮助我吗?
回答:
我认为这里有点混淆。
epoch仅在训练神经网络时使用,因此当训练停止时(在本例中,是在第20个epoch之后),权重对应于最后一个epoch计算的权重。
Keras在训练过程中会在每个epoch后打印当前在验证集上的损失值。如果每个epoch后的权重没有保存,那么它们就会丢失。你可以使用ModelCheckpoint回调来保存每个epoch的权重,然后使用load_weights在你的模型上加载它们回来。
你可以通过实现一个适当的回调来在每个训练epoch后计算你的预测,这个回调可以通过子类化Callback并在on_epoch_end函数中调用predict来实现。
然后要使用它,你需要实例化你的回调,创建一个列表,并将其作为关键字参数callbacks传递给model.fit。