Прогнозирование регрессии Кераса - это не то же самое, что и выходное измерение - PullRequest
0 голосов
/ 18 октября 2018

Здравствуйте, я пытаюсь выполнить дезагрегацию энергии (предсказать потребление энергии бытовыми приборами, учитывая общее потребление энергии определенной семьей.)

Теперь у меня есть входное измерение 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-dim y_train 18-dim

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 18 октября 2018

Итак, вы изменяете прогнозы и сглаживаете их здесь:

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

reshape(-1) эффективно делает массив одномерным.Просто примите прогнозы напрямую:

pred = model.predict(X_test)
...