ケラスを使用してLSTMで時系列を予測しています。私たちが訓練したものと同じタイムステップではないデータを使用して予測できます。例:ケラスを使用するLSTMの異なる時間ステップで予測する
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
タイムステップで予測しようとすると、どうやって動くのですか?