Python Keras:训练时的值错误

Python Keras:训练时的值错误,python,python-3.x,tensorflow,keras,deep-learning,Python,Python 3.x,Tensorflow,Keras,Deep Learning,我的深度学习架构如下: main_input_1 = Input(shape=(50,1), dtype='float32', name='main_input_1') main_input_2 = Input(shape=(50,1), dtype='float32', name='main_input_2') lstm_out=LSTM(32,activation='tanh',recurrent_activation='sigmoid',return_sequences=True) mea

我的深度学习架构如下:

main_input_1 = Input(shape=(50,1), dtype='float32', name='main_input_1')
main_input_2 = Input(shape=(50,1), dtype='float32', name='main_input_2')
lstm_out=LSTM(32,activation='tanh',recurrent_activation='sigmoid',return_sequences=True)
mean_pooling=AveragePooling1D(pool_size=2,strides=2,padding='valid')

lstm_out_1=lstm_out(main_input_1)
lstm_out_2=lstm_out(main_input_2)
mean_pooling_1=mean_pooling(lstm_out_1)
mean_pooling_2=mean_pooling(lstm_out_2)

concatenate_layer=Concatenate()([mean_pooling_1,mean_pooling_2])

logistic_regression_output=Dense(1,activation='softmax',name='main_output')(concatenate_layer)


model = Model(inputs=[main_input_1, main_input_2], outputs=[main_output])
我有平行运行的层(两侧具有相同的结构)。我正在使用Keras的函数api来做同样的事情。但在运行它时,我得到了以下错误:

Traceback (most recent call last):
  File "Main_Architecture.py", line 38, in <module>
    model = Model(inputs=[main_input_1, main_input_2], outputs=[main_output])
  File "/home/tpradhan/anaconda3/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/home/tpradhan/anaconda3/lib/python3.6/site-packages/keras/engine/network.py", line 91, in __init__
    self._init_graph_network(*args, **kwargs)
  File "/home/tpradhan/anaconda3/lib/python3.6/site-packages/keras/engine/network.py", line 192, in _init_graph_network
    'Found: ' + str(x))
ValueError: Output tensors to a Model must be the output of a TensorFlow `Layer` (thus holding past layer metadata). Found: [0.00000000e+00 5.09370000e-06 8.19930500e-04 ... 9.61476653e-02
 3.62692160e-03 3.62692160e-03]
回溯(最近一次呼叫最后一次):
文件“Main_Architecture.py”,第38行,在
模型=模型(输入=[main\u input\u 1,main\u input\u 2],输出=[main\u output])
文件“/home/tpradhan/anaconda3/lib/python3.6/site packages/keras/legacy/interfaces.py”,第91行,在包装器中
返回函数(*args,**kwargs)
文件“/home/tpradhan/anaconda3/lib/python3.6/site packages/keras/engine/network.py”,第91行,在__
自初始化图网络(*args,**kwargs)
文件“/home/tpradhan/anaconda3/lib/python3.6/site-packages/keras/engine/network.py”,第192行,在网络初始图中
'找到:'+str(x))
ValueError:模型的输出张量必须是TensorFlow“Layer”的输出(因此保存过去的层元数据)。发现:[0.00000000e+005.0937000E-068.19930500e-04…9.61476653e-02
3.62692160e-03 3.62692160e-03]

我已经阅读了带有类似错误的问题,但没有一个对我有用。请帮助我解决这个问题。

您正在传递图层名称作为输出参数。您应该传递层(换句话说,参数值应该是引用输出层的变量)

model = Model(inputs=[main_input_1, main_input_2], outputs=[logistic_regression_output])