Код: Выделить всё
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. Таким образом, после вызова Predict мы фактически получаем 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