我正在使用LSTM-RNN网络来预测提供顺序数据的值。在这里,我在每个批次中使用不同的时间步长。 pcolor
层的输出被馈送到LSTM
层以获取单个值,然后将其与另一个输入串联。以下是我的实现。
Dense
在这里,我使用pa_input = Input(shape=(None, 1))
lstm_layer = LSTM(50, return_sequences=True, name="Long_Short_Memory_layer")(pa_input)
dense_layer1 = Dense(1)(lstm_layer)
feature1_input = Input(shape=(1,1), name="non_seq_feature1_input_layer")
hybrid_model = concatenate([dense_layer1, feature1_input],
name="Seq_non-seq_concat_layer")
形状进行顺序数据输入。想法是每批中的时间步长数不同。我的非顺序特征形状是(1,1,1)。虽然Dense应该为(1,1,1),但它与LSTM的输出保持一致。但是,当时间步长不为1时,这会给我带来错误。ex(1,n,1)形状顺序输入。
(1,None,1)
根据我的理解,独立于时间步长,LSTM应该为每种情况提供valueError: A `Concatenate` layer requires inputs with matching shapes except
for the concat axis. Got inputs shapes: [(None, None, 1), (None, 1, 1)]
输出。
但是当我有n个时间步长时,密集层输出为(1,1,1)
,而1,n,1
为feature1_input layer
,这是不兼容的。我该如何解决这个问题?