【问题标题】:Keras regression prediction is not same dimension as output dimensionKeras回归预测与输出维度不同
【发布时间】:2018-10-18 15:56:17
【问题描述】:

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

现在我的输入维度为 2,因为有 2 个主要能量测量值。 Keras Sequential 模型的输出维度应该是 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-dim y_train 是 18-dim

感谢任何帮助!

【问题讨论】:

  • 我不完全理解这个问题。 X_train、y_train、X_test 和 pred 的形状你能说清楚一点吗?
  • @jmsinusa 我的问题已经得到正确回答,但还是谢谢!

标签: python tensorflow neural-network keras regression


【解决方案1】:

你正在重塑预测并将它们展平:

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

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

pred = model.predict(X_test)

【讨论】:

  • 有效!谢谢一堆。这就是我用来转置我以前的一维数组的方法。我不知道它实际上执行了转换。
  • @StreamJungle Transpose 是 .T,不重塑为 -1。
猜你喜欢
  • 2018-09-30
  • 2022-12-09
  • 2020-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 2020-01-31
  • 1970-01-01
相关资源
最近更新 更多