对串联层使用不同的时间步长

时间:2019-06-06 14:55:04

标签: machine-learning keras lstm

我正在使用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,1feature1_input layer,这是不兼容的。我该如何解决这个问题?

0 个答案:

没有答案