abu*_*nte 6 python subclassing keras
我正在使用Keras来预测时间序列.作为标准,我使用了20个时代.我想知道我的神经网络为20个时期中的每一个预测了什么.
通过使用model.predict我在所有时期中只得到一个预测(不确定Keras如何选择它).我想要所有的预测,或者至少是10个最好的预测.
根据我之前得到的答案,我应该通过Callback()在on_epoch_end函数内部对模型进行子类化和调用预测来实现适当的回调来计算每个训练时期之后的预测.
嗯,这个理论似乎很有形,但我很难编码.有人能够给出一个代码示例吗?
不知道如何实现Callback()子类化,也不知道如何将它与函数model.predict内部混合on_epoch_end .
非常感谢您的帮助:)
编辑
好吧,我进化了一点点.了解如何创建子类以及如何将其链接到model.predict.但是,我正在大肆宣传如何使用所有预测创建列表.以下是我目前的代码:
#Creating a Callback subclass that stores each epoch prediction
class prediction_history(Callback):
def on_epoch_end(self, epoch, logs={}):
self.predhis=(model.predict(predictor_train))
#Calling the subclass
predictions=prediction_history()
#Executing the model.fit of the neural network
model.fit(X=predictor_train, y=target_train, nb_epoch=2, batch_size=batch,validation_split=0.1,callbacks=[predictions])
#Printing the prediction history
print predictions.predhis
Run Code Online (Sandbox Code Playgroud)
然而,我所得到的只是上一个时期的预测列表(与打印model.predict(predictor_train)相同的效果).
现在的问题是:我如何调整我的代码,以便增加predhis 每个时代的预测?
Mat*_*gro 10
你正在覆盖每个时代的预测,这就是为什么它不起作用.我会这样做:
class prediction_history(Callback):
def __init__(self):
self.predhis = []
def on_epoch_end(self, epoch, logs={}):
self.predhis.append(model.predict(predictor_train))
Run Code Online (Sandbox Code Playgroud)
这样self.predhis现在是一个列表,每个预测在每个时代结束时附加到列表中.
| 归档时间: |
|
| 查看次数: |
3616 次 |
| 最近记录: |