Я использую LSTM на кератах и использую слой с изменением формы в надежде, что мне не нужно указывать форму для слоя LSTM.
входное значение 84600 x 6
84600секунд через 2 месяца.6 метрик / [меток] я измеряю в течение 2 месяцев
, пока у меня есть
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Reshape((86400,1,6), input_shape=(84600, 6)))
model.add(tf.keras.layers.LSTM(128, activation='relu', input_shape=
(x_train.shape), return_sequences=True))
model.add(tf.keras.layers.Dense(10, activation='softmax'))
, который выдает ошибку:
ValueError: Input 0 of layer lstm is incompatible with the layer: expected ndim=3, found ndim=4. Full shape received: [None, 86400, 1, 6]
это понятно.Размер пакета плюс 3 слоя равен 4. Однако, когда я изменяю форму
model.add(tf.keras.layers.Reshape((86400,1,6), input_shape=(84600, 6)))
vvvvvvv
model.add(tf.keras.layers.Reshape((86400,6), input_shape=(84600, 6)))
Он выбрасывает
ValueError: Error when checking input: expected reshape_input to have 3 dimensions, but got array with shape (86400, 6)
Кажется, что размер пакета игнорируется как элемент массива.И трактует это как 2 индекса.Он переходит с 4 измерений на 2 измерения.
Проблема в том, что LSTM принимает 3 измерения в качестве входных данных, и я не могу этого понять.В идеале я хочу массив / тензор 86400 x 1 x 6.Так получается 84600 примеров данных 1x6.
Большое спасибо!