В предложении я хочу предсказать пять различных двоичных значений.Для каждого двоичного значения я хочу предсказать однозначное закодированное значение.
Для этого я запрограммировал 2 разных LSTM.Но теперь я не уверен, как я мог использовать выходные данные первого LSTM, чтобы правильно использовать его во втором LSTM.Итак, во-первых, две мои модели:
Первая модель
model = Sequential()
model.add(Embedding(word_count, embedding_size, input_length = sentence_length))
model.add(LSTM(hidden_layer_units))
model.add(Dense(5))
model.add(Activation("sigmoid"))
Выход может быть 0 или 1 для 5 значений.Fe [0,1,0,0,1]
Вторая модель
main_input = Input(shape = (sentence_length,), dtype = 'int32', name = 'main_input')
embedding = Embedding(word_count, embedding_size,
input_length=sentence_length)(main_input)
lstm_out = LSTM(hidden_layer_units)(embedding)
auxiliary_input = Input(shape=(5,), name='aux_input')
x = concatenate([lstm_out, auxiliary_input])
main_output = Dense(4, activation='sigmoid', name='main_output')(x)
model = Model(inputs=[main_input, auxiliary_input], outputs=main_output)
Входные данные моего вспомогательного входа такие же, как [0,0,0,1,0].Вывод имеет горячее кодирование [0,0,1,0]
Моя идея
Сначала я подумал, что, возможно, я смогу использовать вывод моей первой модели напрямую в качестве ввода для моего второгомодель.Проблема: выходные данные моей второй модели могут измениться, и я не знаю, как можно создать выходной слой для моей второй модели, который может предсказать двумерный вывод, такой как
[
[0,0,0,1]
[0,0,1,0]
[0,0,0,1]
[0,0,0,1]
[1,0,0,0]
]
Так что мой вопрос:
Можно ли использовать данные первой модели непосредственно в качестве входных данных для второй модели, имея двумерный выходной слой?
или 2.возможно следующее: для каждого двоичного значения моей первой модели я передаю закодированный массив с одним горячим вводом в качестве входных данных для второй модели.Так что вторая модель существует 5 раз.Только если все 5-секундные модели прогнозируют выходной сигнал правильно, моя полная модель верна.