繁体   English   中英

Keras 将 LSTM 模型与非 LSTM 模型连接起来

[英]Keras concatenate LSTM model with non-LSTM model

我有两个数据。 一个是时间序列,另一个包含性、教育等特征,我想连接 LSTM 模型和密集模型的输出。 但是,我收到了一条错误消息(请看最后)。

这是数据的样子:

在此处输入图片说明

在此处输入图片说明

这是代码:

# PAY_data net
input1 = Input(shape=(6,1))
pay = LSTM(10)(input1)
pay = Dense(10, activation='relu')(pay)

# DEMO_data net
input2 = Input(shape=(5,1))
demo = Dense(10, activation='relu')(input2)
demo = Dense(10, activation='relu')(demo)

merge = concatenate([pay, demo])

hidden1 = Dense(10, activation='relu')(merge)

output = Dense(1, activation='sigmoid')(merge)
model = Model(inputs=[input1, input2], outputs=output)

print(model.summary())

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

model.fit([PAY_data, DEMO_data], y,nb_epoch=20, batch_size=50, verbose=2, validation_split=0.2)

这是我得到的错误:

在此处输入图片说明

由于Dense 层应用于其输入数据的最后一个轴,并且考虑到您已为“Demo_data net”指定了(5,1)的输入形状,因此该模型的输出形状将为(None, 5, 10)因此它不能与输出形状为(None, 10)的“Pay_data net”的输出连接。 要解决此问题,您可以使用np.squeeze()PAY_data删除冗余的最后一个轴:

PAY_data = np.squeeze(PAY_data)

并相应地设置输入形状:

input2 = Input(shape=(5,))  # now the input shape is (5,) and not (5,1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM