Получение ошибки несоответствия формы ввода на последнем плотном слое - PullRequest
0 голосов
/ 07 июня 2019

У меня есть следующая LSTM сеть, реализованная с помощью Keras функционального API.

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)

Я передаю данные в эту сеть через генератор.Я сделал входную форму входного лейера None, потому что размеры шагов меняются в каждой партии.(мой размер партии 1).У меня есть последовательный ввод данных и непоследовательный ввод данных.Ниже приведена моя сетевая архитектура Архитектура

Ниже приведены мои размеры данных.

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)]

Что такое проблема в моей сети и как я могу ее решить.Ценю ваше понимание.

...