在有状态LSTM中进行预测

时间:2016-09-02 08:02:01

标签: python deep-learning keras

我有以下Keras模型,虽然它可以使用GRU推广到普通RNN。

model = Sequential()
model.add(GRU(40, batch_input_shape=(batch_size, look_back, 1), stateful=True, return_sequences=True))
model.add(GRU(10, batch_input_shape=(batch_size, look_back, features), stateful=True))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')

# Train model
iter = 10000
for i in range(iter):
    model.fit(trainX, trainY, nb_epoch=1, batch_size=batch_size, verbose=0, shuffle=False)
    if (i<(iter-1)):
        model.reset_states()

testPred = model.predict(testX,batch_size=batch_size)
print(mean_squared_error(testY,testPred))

如果我没有关于重置状态的if声明,则均方误差总是更高。考虑到测试集恰好在列车设置之后,您是否有意保留最后一个内存块的状态?

本教程似乎另有建议:http://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/(即他根本没有if语句,并没有明确提及保留最后状态的任何内容)。

所以只是想知道我对此是否正确。

0 个答案:

没有答案