我正在研究一个多变量时间序列预测问题,其中我有2个特征和15个时间步长,我想预测一两个未来值。我的数据集形状如下:
Training Shape: (2063, 15, 2) (2063, 1)
Testing Shape: (259, 15, 2) (259, 1)
Prediction Shape: (65, 15, 2) (65, 1)
我有以下LSTM模型:
def mylstm(structure , data):
inputs = Input(shape=(data["X_train"].shape[1],data["X_train"].shape[2]))
lstm_1 = LSTM(structure["n_hidden_units"], return_sequences=True,
activation=structure["activation"],
kernel_initializer=structure["network_weight_initial"])(inputs)
lstm_out=LSTM(structure["n_hidden_units"])(lstm_1)
outputs = Dense(1)(lstm_out)
model = Model(inputs=inputs, outputs=outputs)
model.summary()
return model
optimizer = getattr(optimizers, structure["opt"])(learning_rate=structure["learning_rate"])
model.compile(optimizer=optimizer, loss='mse')
history = model.fit(
data["X_train"], data["y_train"], epochs=structure["epoch"],
batch_size=structure["batch_size"], verbose=2,
validation_data=(X_valid, y_valid), shuffle=False,
)
训练模型并调用预测函数后,如下所示
y_pred = model.predict(data["X_test"])
我收到错误消息:
ValueError: y_true and y_pred must have the same number of dimensions.
那是因为
y_pred
长度为1820
(65*14*2)
。我不明白为什么它考虑了批量大小,我应该得到
65*2
尺寸,但它给出
1820*1
.