尝试使用(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)
答案 0 :(得分:2)
根据keras docs,输入数据应为3d张量,即(nb_samples,时间步长,input_dim)。 this是一个很好的教程,介绍了如何为lstm模型重塑数据。