I am trying to use a CNN to do a regression prediction on some statistical data. The data is time-series data formatted into a 2-D grid. The network I'm using looks like this:

def create_model(num_features):

    model = Sequential()
    model.add(Conv2D(32, (3, 3), input_shape=(WINDOW, num_features, 2)))
    model.add(MaxPooling2D(pool_size=(2, 2)))

    model.add(Conv2D(32, (3, 3)))
    model.add(MaxPooling2D(pool_size=(2, 2)))

    model.add(Conv2D(64, (3, 3)))
    model.add(MaxPooling2D(pool_size=(2, 2)))


    model.compile(loss='mse', optimizer='adam', metrics=['mse'])

    return model

The input to it is a 200 x 100 x 2 array of floats 0..1 and visualised (using the green and red channels of a RGB png and scaling to 0..255) looks like this as an example:

Example input

My problem is that after an amount of training I'm getting a point where no matter what input I give it, the predictions are all coming back as the same value. So something has gone wrong in the training. If I check after the first epoch, then the predictions come back varying (but of course not accurate at that point).

So my question is, what do I need to look for? I'm guessing this symptom has a name? I don't even know what to call it to start looking for answers online.

Any tips greatly appreciated, thanks!


  • 2
    $\begingroup$ Hi Matt! Please, ask this question on Data Science SE, given that your problem possibly involves the debugging of the source code. This website focuses more on the theoretical and philosophical question related to AI. $\endgroup$ – nbro Jul 13 '19 at 13:22
  • $\begingroup$ In other words: Please do post the same content to DataScience and remove this one. $\endgroup$ – mico Jul 13 '19 at 13:49
  • $\begingroup$ Yes, hence why I am asking it here. $\endgroup$ – Matt Hamilton Jul 13 '19 at 20:30

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.