Python 连接层的ValueError(Keras函数API)

Python 连接层的ValueError(Keras函数API),python,neural-network,concatenation,keras,valueerror,Python,Neural Network,Concatenation,Keras,Valueerror,在这里搜索了一些之后,我仍然找不到解决这个问题的方法。我是Keras的新手,如果有解决办法,我会道歉,但实际上我不明白这和我的问题有什么关系 我正在用keras2/Functional API制作一个小型RNN,我很难让连接层正常工作 以下是我的结构: inputSentence = Input(shape=(30, 91)) sentenceMatrix = LSTM(91, return_sequences=True, input_shape=(30, 91))(inputSentence)

在这里搜索了一些之后,我仍然找不到解决这个问题的方法。我是Keras的新手,如果有解决办法,我会道歉,但实际上我不明白这和我的问题有什么关系

我正在用keras2/Functional API制作一个小型RNN,我很难让连接层正常工作

以下是我的结构:

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.
ValueError:意外地找到了类型为``的实例。应为符号张量实例。
完整的历史记录(如果有帮助的话):

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.
使用TensorFlow后端。
str(输入)+'。层的所有输入
ValueError:调用Layer dense_1时使用的输入不是符号张量。收到的类型:。完整输入:[]。层的所有输入都应该是张量。
self.assert\u输入\u兼容性(输入)
文件“C:\ProgramData\Anaconda3\lib\site packages\keras\engine\topology.py”,第425行,在assert\u input\u compatibility中
聚变=密集(122,激活='relu')(聚变)
文件“C:\ProgramData\Anaconda3\lib\site packages\keras\engine\topology.py”,第552行,在调用中__
回溯(最近一次呼叫最后一次):
文件“C:\ProgramData\Anaconda3\lib\site packages\keras\engine\topology.py”,第419行,在assert\u input\u compatibility中
K.is_keras_张量(x)
文件“C:\ProgramData\Anaconda3\lib\site packages\keras\backend\tensorflow\u backend.py”,第392行,在is\u keras\u tensor中
raise VALUERROR('意外地找到了类型为''+str(类型(x))+'的实例''
ValueError:意外发现类型为“%1”的实例。应为符号张量实例。
我在Windows7上使用Python3.6和Spyder3.1.4。今天早上我用pip升级了TensorFlow和Keras

感谢您提供的任何帮助!

请尝试:

fusion = concatenate([sentenceMatrix, deletionMatrix])
串联
用于
顺序
模型,而
串联
用于
功能API

尝试

fusion = Concatenate()([sentenceMatrix, deletionMatrix])