在多个输入模型中出现价值错误

问题描述 投票:0回答:1

我正在创建一个多输入模型,在这个模型中,我连接了一个CNN模型和一个LSTM模型。LSTM模型包含了最后5个事件,CNN包含了最后一个事件的图片。两者都被组织起来,使numpy中的每个元素k都与5个事件和相应的图片相匹配,输出标签也是如此,这就是模型应该预测的 "下一个 "事件。

chanDim = -1
inputs = Input(shape=inputShape)
x = inputs
x = Dense(128)(x)
x = Activation("relu")(x)
x = BatchNormalization(axis=chanDim)(x)
x = Dropout(0.3)(x)
x = Flatten()(x)
x = Activation("relu")(x)
x = BatchNormalization(axis=chanDim)(x)
x = Dropout(0.1)(x)
x = Activation("relu")(x)
model_cnn = Model(inputs, x)

这样就建立了CNN模型,下面的代码表示LSTM模型

hidden1 = LSTM(128)(visible)
hidden2 = Dense(64, activation='relu')(hidden1)
output = Dense(10, activation='relu')(hidden2)
model_lstm = Model(inputs=visible, outputs=output)

现在,当我把这些模型组合起来,并使用一个简单的致密层来扩展它们,以进行14个类的多类预测时,所有的输入都是匹配的,我可以把(none, 10)和(none, 10)并入MLP的(none, 20)。

x = Dense(14, activation="softmax")(x)
model_mlp = Model(inputs=[model_lstm.input, model_cnn.input], outputs=x)

这一切都很好,直到我试图编译模型时 它给了我一个错误,涉及到MLP模型最后一个密集层的输入。

ValueError: 检查目标时出错:预期dense_121的形状是(14,),但得到的是形状为(1,)的数组。

你知道这怎么可能吗?如果你需要更多的信息,我很乐意提供。

keras neural-network functional-programming conv-neural-network valueerror
1个回答
1
投票

你的目标必须是(None, 14)维的.

试试这个

y = pd.get_dummies(np.concatenate([y_train, y_test])).values
y_train = y[:len(y_train)]
y_test = y[len(y_train):]
© www.soinside.com 2019 - 2024. All rights reserved.