Я хотел поэкспериментировать со следующей моделью кодера-декодера. В рамках эксперимента я начал с введения нескольких слоев CNN, а затем включил слои LSTM. Я могу обучить модель, но я не уверен, как сделать прогноз / вывод на тестовом наборе. Я думаю, что model.predict не будет работать в этом случае. Я видел примеры ( здесь ) прогнозирования модели, когда задействованы только два слоя LSTM. Тем не менее, я не уверен, как сделать то же самое, когда слои CNN включены поверх этих двух слоев LSTM.
input_data = Input(name='the_input', shape = (390,13), dtype='float32')
inp = BatchNormalization(name="inp")(input_data)
conv1= Conv1D(filters=32, kernel_size = 3, strides=2, padding='causal',activation='relu')(inp)
conv1 = BatchNormalization(name="conv1")(conv1)
conv2= Conv1D(filters=64, kernel_size = 3, padding='causal',activation='relu')(conv1)
conv2 = BatchNormalization(name="conv2")(conv2)
conv3= Conv1D(filters=128, kernel_size = 3, strides=2,padding='causal',activation='relu')(conv2)
conv3 = BatchNormalization(name="conv3")(conv3)
encoder=LSTM(128, return_sequences = True, go_backwards = True, return_state=True, name = "encoder_LSTM")
encoder_outputs, state_h, state_c = encoder(conv3)
encoder_states = [state_h, state_c]
input_decoder = Input(shape=(None,output_vocab_size))
decoder_lstm = LSTM(128, return_sequences=True, return_state=True, name = "decoder_LSTM")
decoder_outputs, _, _ = decoder_lstm(input_decoder, initial_state=encoder_states)
output_decoder = Dense(output_vocab_size, activation='softmax')
output=output_decoder(decoder_outputs)
model = Model([input_data,input_decoder], output)