我正在使用多元LSTM模型来预测多步输出。我的数据具有7个功能,包括我要预测的变量,即电气负荷。我有大约2年的数据,每天有96个值(每15分钟)。我只使用1个时间步长(滑动窗口)。验证集为9600个值。我正在尝试预测第二天的负载(即96个值)。所以我在密集层拿了96。我正确地将3D输入作为[样本,时间步长,特征]给出,此处的特征值设为7。下面是我的网络设计:
def sign_in(request):
user = firebase.auth().sign_in_with_email_and_password('email', 'password')
user_token = firebase.auth().refresh(user['refreshToken']
request.session['session_id'] = user_token
但是当我在模型拟合线以下运行时。
model = Sequential()
model.add(LSTM(100, return_sequences=False, activation='relu', input_shape=(train_X.shape[1],train_X.shape[2]))
model.add(Dense(96))
model.compile(loss='mae', optimizer='adam')
我遇到了错误。
history = model.fit(train_X, train_y, epochs=10, batch_size=96, validation_data=(test_X, test_y), verbose=2, shuffle=False)
我不明白为什么会出现这样的错误。请指导我解决此错误。如果您需要更多信息,请告诉我。 我也想问一下我是否正确输入了预测。见下文: 这是用于获取预测的输入文件。这是我数据集中的最后一个值。我将其作为输入,并在此值之前预测96个值。
Error when checking target: expected dense_1 to have shape (96,) but got array with shape (1,)
一旦模型合适,我将预测如下:
print(Utestx_X.shape)
(1, 1, 7)