我是Keras的新手,我正在尝试实现一个序列到序列的LSTM。 特别是,我有一个9个特征的数据集,我想预测5个连续值。
我把训练和测试集分开,它们的形状分别是:
X TRAIN (59010, 9)
X TEST (25291, 9)
Y TRAIN (59010, 5)
Y TEST (25291, 5)
LSTM目前非常简单:
model = Sequential()
model.add(LSTM(100, input_shape=(9,), return_sequences=True))
model.compile(loss="mean_absolute_error", optimizer="adam", metrics= ['accuracy'])
history = model.fit(X_train,y_train,epochs=100, validation_data=(X_test,y_test))
但我有以下错误:
ValueError: Input 0 is incompatible with layer lstm_1: expected ndim=3, found ndim=2
有人能帮我吗?
LSTM层希望输入的形状为
(batch_size, timesteps, input_dim)
。在keras中,需要为输入形状参数传递(timesteps, input_dim
)。但您正在设置输入形状(9,)。此形状不包括timesteps维度。该问题可以通过在时间维的输入图形中添加额外的维数来解决。E、 g加上值为1的额外维度可能是一个简单的解决方案。为此,必须重塑输入数据集(X列)和Y形。但这可能是有问题的,因为时间分辨率是1,而您提供的是单个值而不是一系列值相关问题 更多 >
编程相关推荐