我一直在关注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模型,以便能够根据最新数据及时进行预测。
答案 0 :(得分:0)
使用numpy.append()
将值附加到数组的末尾。
对于您的代码,它应该为pattern = numpy.append(pattern,prediction)
。
祝你好运。