Python/Keras - 如何访问每个时代预测?

abu*_*nte 8 python keras

我正在使用Keras来预测时间序列.作为标准,我使用了20个时代.我想知道我的神经网络为20个时期中的每一个预测了什么.

通过使用model.predict我在所有时期中只得到一个预测(不确定Keras如何选择它).我想要所有的预测,或者至少是10个最好的预测.

有谁知道如何帮助我?

Mat*_*gro 10

我觉得这里有点混乱.

仅在训练神经网络时使用时期,因此当训练停止时(在这种情况下,在第20个时期之后),则权重对应于在上一个时期计算的权重.

Keras在每个纪元后的训练期间打印验证集上的当前损失值.如果未保存每个纪元后的权重,则它们将丢失.您可以使用ModelCheckpoint回调为每个纪元保存权重,然后在模型上使用load_weights将其加载回来.

你可以通过继承实现适当的回调计算每次训练后的时代你的预测回调,并呼吁预测在里面的模型on_epoch_end功能.

然后使用它,实例化你的回调,创建一个列表并将其用作关键字参数回调到model.fit.


San*_*Dey 8

以下代码将完成所需的工作:

import tensorflow as tf
import keras

# define your custom callback for prediction
class PredictionCallback(tf.keras.callbacks.Callback):    
  def on_epoch_end(self, epoch, logs={}):
    y_pred = self.model.predict(self.validation_data[0])
    print('prediction: {} at epoch: {}'.format(y_pred, epoch))

# ...

# register the callback before training starts
model.fit(X_train, y_train, batch_size=32, epochs=25, 
          validation_data=(X_valid, y_valid), 
          callbacks=[PredictionCallback()])
Run Code Online (Sandbox Code Playgroud)

  • 这似乎导致内存泄漏 (4认同)