Python LSTM多任务学习功能api keras
我有两个序列值X_数据,B_数据。我想要两个共享的lstm层来预测X_数据和B_数据的两个输出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
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)
你的输入解决方案我无法转换