训练lstm模型?

时间:2018-10-27 21:08:44

标签: python keras

尝试使用(5,xxx)数据流训练LSTM模型f.e.

(5, 17516)
array([[ 3820.,  2873.,  2369., ..., 18865., 16893., 14242.],
   [ 4656.,  3820.,  2873., ..., 19967., 18865., 16893.],
   [ 6210.,  4656.,  3820., ..., 20223., 19967., 18865.],
   [ 8127.,  6210.,  4656., ..., 20319., 20223., 19967.],
   [10844.,  8127.,  6210., ..., 17246., 20319., 20223.]])

这是模型:

def lstm_model(self, window=5):
    self.model = Sequential()
    self.model.add(LSTM(4, input_shape=( window, 1)))
    self.model.add(Dense(1))
    self.model.compile(loss='mean_squared_error', optimizer='adam')
    return self.model

这很合适:

self.history = self.model.fit(
        windowed_data , self.data.data,
        validation_split=0.2, nb_epoch=55, batch_size=10, verbose=1)

这是我得到的错误:

  

ValueError:检查输入时出错:预期lstm_6_input具有3维,但数组的形状为(5,17516)

我做错了什么?


这似乎解决了。

w.reshape(w.shape[0], w.shape[1],1)

1 个答案:

答案 0 :(得分:2)

根据keras docs,输入数据应为3d张量,即(nb_samples,时间步长,input_dim)。 this是一个很好的教程,介绍了如何为lstm模型重塑数据。