首页 > 解决方案 > 双向 LSTM 结构,数据形状不正确

问题描述

我正在构建以下三层双向 LSTM Keras 模型:

model = Sequential()
model.add(Bidirectional(LSTM(100, activation='relu', return_sequences=True, input_shape=(n_steps_in, n_features))))
model.add(Bidirectional(LSTM(100, activation='relu', return_sequences=True)))
model.add(Dense(1))

model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mse', 'accuracy'])

model.fit(X, y, validation_split=0.3, epochs=2, batch_size=16, verbose=1, callbacks=[es, mc]

但是,我不断收到错误(如下所示):

ValueError:检查目标时出错:预期dense_7 的形状为(30, 1),但数组的形状为(15, 1)

这是我尝试使用的两种数据形状:

  1. X.shape, y.shape = ((45176, 30, 1), (45176, 15, 1))

  2. X.shape, y.shape = ((45176, 30, 1), (45176, 15, 1))

我正在尝试使用以下方法进行多步预测: n_steps_in, n_steps_out = 30, 15 这意味着该模型应提供 15 个下一个时间步预测(输入 30 个时间步)。

标签: pythonkeraslstmbidirectional

解决方案


推荐阅读