【发布时间】:2018-02-27 01:52:15
【问题描述】:
我正在尝试将具有 20 个特征的序列提供给 LSTM 网络,如代码所示。但是我收到一个错误,即我的 Input0 与 LSTM 输入不兼容。不知道如何更改我的层结构以适应数据。
def build_model(features, aux1=None, aux2=None):
# create model
features[0] = np.asarray(features[0])
main_input = Input(shape=features[0].shape, dtype='float32', name='main_input')
main_out = LSTM(40, activation='relu')
aux1_input = Input(shape=(len(aux1[0]),), dtype='float32', name='aux1_input')
aux1_out = Dense(len(aux1[0]))(aux1_input)
aux2_input = Input(shape=(len(aux2[0]),), dtype='float32', name='aux2_input')
aux2_out = Dense(len(aux2[0]))(aux2_input)
x = concatenate([aux1_out, main_out, aux2_out])
x = Dense(64, activation='relu')(x)
x = Dropout(0.5)(x)
output = Dense(1, activation='sigmoid', name='main_output')(x)
model = Model(inputs=[aux1_input, aux2_input, main_input], outputs= [output])
return model
特征变量是一个形状数组 (1456, 20) 我有 1456 天,每天我有 20 个变量。
【问题讨论】:
-
请显示错误信息。您的序列有 20 个特征?但是你的序列的长度是多少? (多少时间步?)
-
ValueError: Input 0 is in compatible with layer lstm_1: expected ndim=3, found ndim=2 is the exact error
标签: python-3.x deep-learning keras lstm