我正在使用keras預測LSTM的時間序列,並且我意識到我們可以使用與我們用來訓練的時間步不同的數據來預測。例如:用LSTM中的不同時間步長預測使用keras
import numpy as np
import keras.optimizers
from keras.models import Sequential
from keras.layers import Dense,Activation,Dropout,TimeDistributed
from keras.layers import LSTM
Xtrain = np.random.rand(10,3,2) #Here timestep is 3
Ytrain = np.random.rand(10,1)
model = Sequential()
model.add(LSTM(input_dim = Xtrain.shape[2],output_dim =10,return_sequences = False))
model.add(Activation("sigmoid"))
model.add(Dense(1))
KerasOptimizer = keras.optimizers.RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0)
model.compile(loss="mse", optimizer=KerasOptimizer)
model.fit(Xtrain,Ytrain,nb_epoch = 1,batch_size = 1)
XBis = np.random.rand(10,4,2) #here timestep is 4
XTer = np.random.rand(10,2,2) #here timestep is 2
model.predict(Xtrain)
model.predict(XBis)
model.predict(XBis)
所以我的問題是:爲什麼呢?如果我們用n
時間步長訓練模型,並且我們使用n+1
時間步長的數據進行預測,可能該模型僅使用第一個n
時間步長。但是如果我們試圖用n-1
時間步預測,它是如何工作的?