NN ==> Keras ==> Ошибка разных входов / выходов (2D / 1D) - PullRequest
0 голосов
/ 28 февраля 2020

Я новичок в Керасе и хотел бы знать, как снабдить мою нейронную сеть различными формами ввода и вывода. Моя цель состоит в том, чтобы предсказать ежечасные временные ряды следующей недели на основе предыдущей и, если день является рабочим днем ​​или выходным.

Входные данные:

часовые временные ряды (неделя n) = => shape = (11400,1)

  • двоичный день недели (1) выходные (0) ==> shape = (11400,1)
  • всего входных данных ==> shape ( 11400,2)

Выходы:

  • почасовые временные ряды (неделя n + 1) ==> shape = (11400,1)
  • всего выходные данные ==> shape (11400,1)

модель:

Я хотел бы кормить всю почасовую неделю (24x7), чтобы иметь входной слой из 168 узлов, и получить 168 узлов в качестве вывода. Таким образом, каждый входной узел будет получать только один час, а затем каждый выходной узел будет прогнозировать только один час. Следовательно, input_shape [1,2].

enter image description here

Код:

model = tf.keras.models.Sequential([
tf.keras.layers.Dense(168, input_shape=[2,], activation="relu"), 
tf.keras.layers.Dense(168, activation="relu"), 
tf.keras.layers.Dense(168)
])

model.compile(loss="mse", optimizer=tf.keras.optimizers.SGD(lr=1e-6, momentum=0.9))
model.fit(inputs, outputs, batch_size = 168,epochs=100,verbose=1)

Ошибка:

ValueError: A target array with shape (11256, 1) was passed for an output of shape (None, 168) while using as loss `mean_squared_error`. This loss expects targets to have the same shape as the output.

Я предполагаю, что есть проблема измерения, но я не уверен, чтобы понять, как использовать MSE без различных входов / выходов.

Спасибо;)

...