我的代码在R中使用Keras和Tensorflow库。我正在创建一个LSTM模型来预测100个未来值。我的输入形状是(100,200,1)。
假设我的输入数据为X。我在时间步t = 201进行预测,并获得预测的Y列。然后,我创建一个新变量Xnew = c(X [2:200],Y),在该变量中,我将X(第一列除外)和Y串联在一起。我使用此Xnew来预测下一步。
正在发生的事情是,在经过一定数量的预计未来时间步长(大约15个)之后,此后每个时间步长的预测都将保持不变。有人知道为什么会这样吗?
prdvec = function(dat,modname, numpreds, cnt, scl){
model = load_model_hdf5(modname)
inpt = dat
pred = list()
for(i in 1:numpreds){
pred[[i]] <- predict(model, reshape_X_3d((inpt[,1:ncol(inpt)]-cnt)/scl), batch_size = 1)
inpt = cbind(inpt[,2:ncol(inpt)],(pred[[i]]*scl+cnt))
print(i)
flush.console()
}
pred
}
答案 0 :(得分:0)
我遇到类似的问题。也许当LSTM单位考虑到自己创建的输入时,它趋于稳定。