InvalidArgumentError:与Keras LSTM Net不兼容的形状

时间:2018-09-10 09:10:51

标签: python keras lstm reshape shapes

我想预测一台机器的压力。我有18个输入值,压力作为输出。因此,我有19列和7657行,因为该数据库包含7657个时间步长,每个时间步长为1秒。

我对以下代码有疑问:

{{1}}

我得到了错误:

  

ValueError:检查输入时出错:预期lstm_1_input具有3   尺寸,但数组的形状为(1257,18)

最后一行代码之后。

我也试图重塑测试数据,但后来我得到一个非常相似的错误。

我认为,我缺少一些非常简单或基本的东西,但是由于我只是编码神经元网络的初学者,因此目前无法弄清楚。 我的硕士论文需要这个,所以如果有人可以帮助我,我将非常感谢。

1 个答案:

答案 0 :(得分:0)

问题是您的模型输入batch_input_shape是固定的。您的测试长度为1257,不能被32整除。应按以下步骤进行更改:

model.add(LSTM(10, return_sequences=True,batch_input_shape=(None,1,18)))

您应该在模型评估测试之前修改测试形状。

x_test= x_test.reshape(len(x)-x_train_size,1,18)
y_test= y_test.reshape(len(y)-x_train_size,1,1)
score = model.evaluate(x_test, y_test,batch_size=32)

当然,您必须在predicted之前重塑y_testinverse_transform

predicted = model.predict(x_test)
predicted= predicted.reshape(len(y)-x_train_size,1)
y_test= y_test.reshape(len(y)-x_train_size,1)