为了账号安全,请及时绑定邮箱和手机立即绑定

为一个输入和两个输出构建 LSTM 模型

为一个输入和两个输出构建 LSTM 模型

萧十郎 2023-10-18 21:19:02
我想构建一个具有一个输入和两个输出的 LSTM 模型。我的数据和图一样。我的模型如下。但它只能预测一种输出。你能帮我设计两个输出的模型吗?谢谢s1 = MinMaxScaler(feature_range=(-1,1))Xs = s1.fit_transform(train[['y1','y2','x']])s2 = MinMaxScaler(feature_range=(-1,1))Ys = s2.fit_transform(train[['y1', 'y2']])window = 70X = []Y = []for i in range(window,len(Xs)):    X.append(Xs[i-window:i,:])    Y.append(Ys[i])X, Y = np.array(X), np.array(Y)model = Sequential()model.add(LSTM(units=50, return_sequences=True,input_shape=(X.shape[1],X.shape[2])))model.add(Dropout(0.2))model.add(LSTM(units=50, return_sequences=True))model.add(Dropout(0.2))model.add(LSTM(units=50))model.add(Dropout(0.2))model.add(Dense(units=1))model.compile(optimizer = 'adam', loss = 'mean_squared_error',metrics = ['MAE'])es = EarlyStopping(monitor='loss',mode='min',verbose=1,patience=10)history = model.fit(X, Y, epochs = 10, batch_size = 250, callbacks=[es], verbose=1)
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

output_shape模型最后一层的形状应与 Y 数据的形状相匹配。

由于您有 2 个 Y 数据,因此您可以将最后一个 Dense 层更改为具有 2 个单位:

model.add(密集(单位=1))

model.add(Dense(units=2))


查看完整回答
反对 回复 2023-10-18
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

您应该使用函数式 API


例如:


input = Input(shape=(shape, ))


out1 = Dense(1,  activation='linear')(input)

out2 = Dense(1,  activation='linear')(input)

out3 = Dense(1,  activation='linear')(input)


model = Model(inputs=input, outputs=[out1,out2,out3])


查看完整回答
反对 回复 2023-10-18
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信