Это два способа создания моделей DL в Керасе. Первый фрагмент кода следует функциональному стилю. Этот стиль используется для создания сложных моделей, таких как мульти-ввод / вывод, общие слои и т. Д.
https://keras.io/getting-started/functional-api-guide/
Второй фрагмент кода - последовательный стиль. Можно создавать простые модели, которые включают в себя только укладку слоев.
https://keras.io/getting-started/sequential-model-guide/
Если вы прочитаете руководство по функциональному API, вы заметите следующее:
'Экземпляр слоя вызывается (на тензоре) и возвращает тензор'
Теперь ошибка, которую вы видите, будет иметь смысл. Эта строка только создает слой и не вызывает его, передавая тензор.
visible = Embedding(QsVocabSize, 1024, input_length=max_length_inp, mask_zero=True)
Впоследствии передача этого объекта Embedded в слой LSTM приводит к ошибке, так как он ожидает Tensor.
Это пример из функционального руководства по API. Обратите внимание, что выходные тензоры переходят из одного слоя в другой.
main_input = Input(shape=(100,), dtype='int32', name='main_input')
x = Embedding(output_dim=512, input_dim=10000, input_length=100)(main_input)
lstm_out = LSTM(32)(x)