我在Keras中使用了以下顺序模型。
model = Sequential()model.add(LSTM(150, input_shape=(29,3)))model.add(Dense(100))model.add(Dropout(0.2))model.add(Dense(1, activation='sigmoid'))model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
现在,我想用Keras的函数式API编写相同的模型。我尝试按以下方式进行操作。
input1 = Input(shape=(29,1))x1 = LSTM(50)(input1)input2 = Input(shape=(29,1))x2 = LSTM(50)(input2)input3 = Input(shape=(29,1))x3 = LSTM(50)(input3) x = concatenate([x1,x2,x3])
然而,我得到的结果完全不同。因此,我认为我转换原始顺序模型的方式是不正确的。
如果需要,我很乐意提供更多细节。
回答:
inputs = Input(shape=(29,3))outputs = LSTM(150)(inputs)outputs = Dense(100)(outputs)outputs = Dropout(0.2)(outputs)outputs = Dense(1, activation='sigmoid')(outputs)model = Model(inputs, outputs)model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])