ValueError с объединить слой (Керрас функционального интерфейса API)

после некоторых поисков, я все еще не могу найти решение для этого. Я новичок в Keras, извиняюсь, если есть решение, и я на самом деле не понял, как это связано с моей проблемой.

Я делаю небольшой RNN с Keras 2 / Functional API, и у меня возникли проблемы с работой Конкатенатного слоя.

вот моя структура:

inputSentence = Input(shape=(30, 91))
sentenceMatrix = LSTM(91, return_sequences=True, input_shape=(30, 91))(inputSentence)

inputDeletion = Input(shape=(30, 1))
deletionMatrix = (LSTM(30, return_sequences=True, input_shape=(30, 1)))(inputDeletion)

fusion = Concatenate([sentenceMatrix, deletionMatrix])
fusion = Dense(122, activation='relu')(fusion)
fusion = Dense(102, activation='relu')(fusion)
fusion = Dense(91, activation='sigmoid')(fusion)

F = Model(inputs=[inputSentence, inputDeletion], outputs=fusion)

и вот ошибка:

ValueError: Unexpectedly found an instance of type `<class 'keras.layers.merge.Concatenate'>`. Expected a symbolic tensor instance.

Полная история, если это поможет немного больше :

Using TensorFlow backend.
    str(inputs) + '. All inputs to the layer '
ValueError: Layer dense_1 was called with an input that isn't a symbolic tensor. Received type: <class 'keras.layers.merge.Concatenate'>. Full input: [<keras.layers.merge.Concatenate object at 0x00000000340DC4E0>]. All inputs to the layer should be tensors.
self.assert_input_compatibility(inputs)
  File "C:ProgramDataAnaconda3libsite-packageskerasenginetopology.py", line 425, in assert_input_compatibility
fusion = Dense(122, activation='relu')(fusion)
  File "C:ProgramDataAnaconda3libsite-packageskerasenginetopology.py", line 552, in __call__
Traceback (most recent call last):
  File "C:ProgramDataAnaconda3libsite-packageskerasenginetopology.py", line 419, in assert_input_compatibility
K.is_keras_tensor(x)
  File "C:ProgramDataAnaconda3libsite-packageskerasbackendtensorflow_backend.py", line 392, in is_keras_tensor
raise ValueError('Unexpectedly found an instance of type `' + str(type(x)) + '`. '
ValueError: Unexpectedly found an instance of type `<class 'keras.layers.merge.Concatenate'>`. Expected a symbolic tensor instance.

Я использую Python 3.6, с Spyder 3.1.4, в Windows 7. Сегодня утром я обновил TensorFlow и Keras с помощью pip.

Спасибо за любую помощь!

1 ответов


попробуй:

fusion = concatenate([sentenceMatrix, deletionMatrix])

Concatenate используется Sequential модель, в то время как concatenate используется Functional API.