Python LSTM多任务学习功能api keras

Python LSTM多任务学习功能api keras,python,tensorflow,keras,lstm,Python,Tensorflow,Keras,Lstm,我有两个序列值X_数据,B_数据。我想要两个共享的lstm层来预测X_数据和B_数据的两个输出 l1 = layers.LSTM(40)(X_data) flat_layer = Flatten()(l1) l2 = layers.LSTM(20)(B_data) flat_layer2 = Flatten()(l2) output1 = Dense(1, activation='sigmoid')(flat_layer) output2 = Dense(1, activation='sig

我有两个序列值X_数据,B_数据。我想要两个共享的lstm层来预测X_数据和B_数据的两个输出

l1 = layers.LSTM(40)(X_data)
flat_layer = Flatten()(l1)
l2 = layers.LSTM(20)(B_data)
flat_layer2 = Flatten()(l2)


output1 = Dense(1, activation='sigmoid')(flat_layer)
output2 = Dense(1, activation='sigmoid')(flat_layer2)

model = keras.Model(inputs=[X_data,B_data], outputs=[output1,output2])
我要这个
AttributeError:Tensor.op在启用急切执行时没有意义。

有什么建议吗?

错误在于,
keras.Model(inputs)
不接收输入数据,而是接收输入层(正如您正确处理
输出时所做的那样)。数据通过
model.fit()
传递。因此,首先,您需要两个
Input
层:

X_data = np.random.uniform(0,1,(3,100,40))
B_data = np.random.uniform(0,1,(3,100,20))

y1 = np.random.uniform(0,1,(3,1))
y2 = np.random.uniform(0,1,(3,1))

i1 = Input((100,40)) # you need input layers
i2 = Input((100,20))

l1 = LSTM(40)(i1)
flat_layer = Flatten()(l1)
l2 = LSTM(20)(i2)
flat_layer2 = Flatten()(l2)


output1 = Dense(1, activation='sigmoid')(flat_layer)
output2 = Dense(1, activation='sigmoid')(flat_layer2)

model = tf.keras.Model(inputs=[i1,i2], outputs=[output1,output2])
model.compile('sgd', 'mse')
model.fit(x=[X_data,B_data], y=[y1,y2]) # this is where you pass input (data) and output (labels)

我的数据帧就是这样,我转换输入数据

trainxx=np.array(trainn3)
X_data = trainxx.reshape((trainxx.shape[0], 1, trainxx.shape[1]))
y值是numpy数组

ytrainxx=np.array(ytrains)
你的输入解决方案我无法转换