Keras LSTM网络预测更新

时间:2018-07-26 23:39:53

标签: python numpy for-loop machine-learning keras

我一直在关注https://machinelearningmastery.com/blog/中使用Keras的各种教程,并获得了巨大的成功。最近,我一直在用深度LSTM网络进行实验,以解决时间序列预测问题。网络训练得很好,并产生可接受的错误量。在现实世界的应用程序中,没有数据点可以像生成测试数据集一样进行细分以生成下一个预测,因此我希望能够对最后的预测进行细分。

对于该网络的实际应用,我需要能够使用初始数据进行预测t + 1,将结果添加到输入数据,预测t + 2,将结果添加到输入数据,等等,直到我能够预测未来的特定时间步长。

我最初从:

start = len(testX)-15
pattern = testX[start]

for i in range(200):
    x = numpy.reshape(testX, (testX.shape[0], testX.shape[1], 1))
    prediction = model.predict(testX[i:i+15], batch_size=batch_size)
    pattern.append(prediction)

print "\nDone."

此方法在pattern.append(prediction)行遇到问题,产生错误:AttributeError:'numpy.ndarray'对象没有属性'append'。这不会用最后的预测更新输入,从而破坏了连续周期。

我无法找到任何使用这种类型的feed方法的ANN模型,以便能够根据最新数据及时进行预测。

1 个答案:

答案 0 :(得分:0)

使用numpy.append()将值附加到数组的末尾。

对于您的代码,它应该为pattern = numpy.append(pattern,prediction)

祝你好运。