Код: Выделить всё
seq2seq_model = tf.keras.Sequential([
tf.keras.layers.SimpleRNN(32, return_sequences=True, input_shape=[None, 5]),
tf.keras.layers.Dense(14)
])
это взято из репозитория:
https://github.com/ageron/handson-ml3/b ... cnns.ipynb
но нет необходимости понимать этот вопрос.
Таким образом, данные временных рядов передаются в последовательности длиной 56. Таким образом, после вызова прогноза мы фактически получаем 56 векторов прогнозирования каждый с 14 днями прогнозов. (первые 55 используются при обучении, а последний является фактическим прогнозом). Мой вопрос: если имеется 32 входных нейрона, каждый из которых выполняет предыдущий временной шаг, как мы можем получить 56 прогнозов, если для первого 31 временного шага до них недостаточно временных шагов, чтобы передать их в качестве входных данных всем нейронам? все ли недостающие функции установлены на 0? Как осуществляется пас вперед в этих случаях? Чем обратное распространение ошибки полезно в этих случаях, когда мы пытаемся научить модель прогнозировать, используя полные данные за 56 временных шагов? Мне нужны конкретные ответы Keras, а также некоторое общее представление об этом.
Я попробовал запустить этот код:
Код: Выделить всё
X = mulvar_valid.to_numpy()[np.newaxis, :seq_length]
y_pred_14 = seq2seq_model.predict(np.asarray(X).astype(np.float32))
print(len(y_pred_14[0]))
Подробнее здесь: https://stackoverflow.com/questions/787 ... h-multiple