![](/img/trans.png)
[英]Does model.reset_states for LSTM affect any other non-LSTM layers in the model?
[英]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.