[英]ValueError with Concatenate Layer (Keras functional API)
經過一些搜索,我仍然無法找到解決方案。 我是Keras的新手,如果有解決方案我會道歉並且我實際上不明白它與我的問題有什么關系。
我正在使用Keras 2 / Functional API制作一個小型RNN,我無法使Concatenate Layer工作。
這是我的結構:
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:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py", line 425, in assert_input_compatibility
fusion = Dense(122, activation='relu')(fusion)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py", line 552, in __call__
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py", line 419, in assert_input_compatibility
K.is_keras_tensor(x)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\backend\tensorflow_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.
我在Windows 7上使用Python 3.6和Spyder 3.1.4。我今天早上用pip升級了TensorFlow和Keras。
感謝您提供的任何幫助!
嘗試:
fusion = concatenate([sentenceMatrix, deletionMatrix])
Concatenate
用於Sequential
模型,而concatenate
用於Functional API
。
嘗試
fusion = Concatenate()([sentenceMatrix, deletionMatrix])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.