Мой код написан на 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
}