我已经使用LSTM
功能API实现了以下Keras
网络。
input = Input(shape=(None, 2), name="input_layer")
lstm_layer = LSTM(50, return_sequences=False, name="Long_Short_Memory_layer")(input)
dense_layer1 = Dense(2, name="Intm_output_layer")(lstm_layer)
feature1_input = Input(shape=(1,), name="feature1_input_layer")
hybrid_model = concatenate([dense_layer1, feature1_input], name="Seq_non-seq_concat_layer")
hidden1 = Dense(10, activation = 'relu',name="Hidden1_layer")(hybrid_model)
hidden2 = Dense(10, activation='relu', name="Hidden2_layer")(hidden1)
final_output = Dense(2, activation='sigmoid', name="Final_output_layer")(hidden2)
我正在通过生成器向该网络提供数据。我将输入范围的输入形状设置为“无”,因为我的步长在每批中都不同。 (我的批量大小是1)。我有顺序数据输入和非顺序数据输入。以下是我的网络架构 Architecture
以下是我的数据大小。
X feature_1 Y
(1,1,2) (1,1,1) (1,1,2)
(1,5,2) (1,5,1) (1,1,2)
在训练模型时,由于Final output layer
处形状不匹配而给我一个错误。
ValueError: Error when checking target: expected Final_output_layer to have 2 dimensions,
but got array with shape (1, 1, 2)
我尝试将Y的大小更改为(1,2),但是这给了我错误
ValueError: All input arrays (x) should have the same number of samples.
Got array shapes: [(1, 2, 2), (2, 1)]
我的网络中有什么问题,我该如何解决。欣赏您的见识。