您好,我正在尝试进行能源分解(在给定某个家庭的总能耗的情况下,预测设备的能源使用情况。)
由于有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角
感谢您的帮助!
答案 0 :(得分:2)
好吧,您正在重塑预测并在此处将其展平:
pred = model.predict(X_test).reshape(-1)
reshape(-1)
有效地使数组成为一维。只需直接进行预测即可:
pred = model.predict(X_test)