Keras回归预测的维度与输出维度不同

时间:2018-10-18 15:56:18

标签: python tensorflow neural-network keras regression

您好,我正在尝试进行能源分解(在给定某个家庭的总能耗的情况下,预测设备的能源使用情况。)

由于有2个主要能量测量值,因此我的输入维数为2。 Keras序列模型的输出维应该为18,因为我要预测18个设备。 使用REDD数据集,我有足够的数据(这没问题)。

我已经训练了模型,并获得了合理的损失和准确性。 但是,当我要对某些测试数据进行预测时,该预测由一维数组中的值组成。同时输出是18维的?

这怎么可能?或者我正在尝试一些不太可行的东西?

某些代码:

model = Sequential()

model.add(Dense(HIDDEN_LAYER_NEURONS,input_dim=2))
model.add(Activation('relu'))
model.add(Dense(18))

model.compile(loss=LOSS,
          optimizer=OPTIMIZER,
          metrics=['accuracy'])

model.fit(X_train, y_train, epochs=EPOCHS, batch_size=BATCH_SIZE, 
verbose=1, validation_split=VALIDATION_SPLIT)

pred = model.predict(X_test).reshape(-1)
pred.shape # prints the following 1 dimensional array: (xxxxx,) dimensional

ALL_CAPS变量是常量。 X_train是2维 y_train为18角

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

好吧,您正在重塑预测并在此处将其展平:

pred = model.predict(X_test).reshape(-1)

reshape(-1)有效地使数组成为一维。只需直接进行预测即可:

pred = model.predict(X_test)