-1
$\begingroup$

I have a timeseries data and I am doing univariate forecasting using stacked LSTM without any activation function, Like following.

model = Sequential()
model.add(LSTM(200, return_sequences=True, input_shape=(window_6, features)))
model.add(Dropout(0.2))
model.add(LSTM(200, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(200, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(200))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')

Also, I used ADAM optimizer and MSE loss, with 128 batch size and 500 epochs, and 500 steps per epoch.

loss_ = PlotLossesKeras()
model.fit(X1, y1, batch_size= 128, epochs=500, validation_split = 0.2, steps_per_epoch = 500, shuffle=True, callbacks=[loss_])
The loss plot looks like this:

Plot

Loss
    training             (min:   76.334, max: 1568.067, cur:   77.816)
    validation           (min:   83.637, max:  382.949, cur:   84.288)
500/500 [==============================] - 5s 9ms/step - loss: 77.8162 - val_loss: 84.2875

My questions:

  1. Is this model overfit/underfit/Normal fit?
  2. The current loss is 77 and validation loss is 84. How I can reduce loss to below 10?

Need suggestions. Open for any critique. Thanks.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.