Итак, я построил Neural Network со следующим кодом:
import tensorflow as tf
tf_model = tf.keras.Sequential()
tf_model.add(tf.keras.layers.LSTM(50, activation='relu'))
tf_model.add(tf.keras.layers.Dense(20, activation='relu'))
tf_model.add(tf.keras.layers.Dense(10, activation='relu'))
tf_model.add(tf.keras.layers.Dense(1, activation='linear'))
tf_model.compile(optimizer='Adam', loss='mse')
Мой тренировочный набор имеет следующую форму:
>> ts_train_X.shape
(16469, 3, 21)
Я прочитал множество статей и вопросов здесь о stackoverflow чтобы привести фрейм данных в правильную форму для LSTM. Почти на каждой из найденных мною страниц указан параметр input_shape
и он передан либо в LSTM (..), либо в Sequential (..).
Когда я смотрю на LSTM API I не может найти ссылку на этот параметр. У меня также был взгляд на исходный код, и мне кажется, что форма каким-то образом автоматически выводится, но я не уверен в этом.
Это приводит меня к моему вопросу: Почему мой код Работа? Как слой LSTM как первый слой может узнать форму моих входных данных, если я не укажу параметр input_shape?
edit: изменить заголовок согласно предложению в комментариях.