Разрабатываю нейросеть RNN(LSTM слои) для прогнозирования численного значения временного ряда, использую tensorflow. Модель совсем не обучается

У моей модели выходят значения в одном диапазоне(практически одинаковые), что совсем не соответствует реальным данным. В качестве входных данных использую временной ряд с размерностью (None, 20, 28) - на входе у LSTM слоя. Что-то похожее выводит моя модель Данные у меня в виде тензоров разбитых на батчи. Также на входе есть слой нормализации данных, который перед этим я обучил.

Архитектура модели:

model = keras.Sequential()
    model.add(normalizer)
    model.add(layers.LSTM(256,
                          return_sequences = True,
                          input_shape=x_train_multi.shape[-2:],
                          #activation=keras.activations.relu,
                          #activity_regularizer=keras.regularizers.L1(0.001)
                          ))
    model.add(layers.LSTM(256,
                          return_sequences = True,
                          #activation=keras.activations.relu,
                          #activity_regularizer=keras.regularizers.L2(0.001)
                          ))
    model.add(layers.Dropout(0.002))
    model.add(layers.Dense(256, activation=keras.activations.relu))
    model.add(layers.Dense(128, activation=keras.activations.relu))
    model.add(layers.Dense(64, activation=keras.activations.relu))

    model.add(layers.Dense(1, activation=keras.activations.relu))

    model.compile(optimizer = keras.optimizers.Adam(learning_rate=0.001),
                    loss=keras.losses.MeanSquaredError(),
                    metrics=['mae', 'mse']
                  )

Я пробовал обучать обычную полносвязную модель, без слоев LSTM и результат был лучше.

Подскажите, пожалуйста, с чем может быть связано такое поведение.


Ответы (0 шт):