title: Keras model.evaluate incorrect shapes
body: <p>I am very confused by the <code>evaluate</code> function in Keras. All i want to calculate is the MSE loss of my test set:</p>
  
  <pre><code>def iterate_and_store(optimizer, nepochs=10):
      model = Sequential()
      model.add(Dense(output_dim=8, input_dim=3, init="glorot_normal"))
      model.add(Activation("softplus"))
      model.add(Dense(output_dim=16, init="glorot_normal"))
      model.add(Activation("softplus"))
      model.add(Dense(output_dim=32, init="glorot_normal"))
      model.add(Activation("softplus"))
      model.add(Dense(output_dim=32, init="glorot_normal"))
      model.add(Activation("softplus"))
      model.add(Dense(output_dim=16, init="glorot_normal"))
      model.add(Activation("softplus"))
      model.add(Dense(output_dim=1))
      model.add(Activation("softplus"))
  
      model.compile(loss='MSE', optimizer=optimizer)
  
      training_loss = pd.DataFrame(model.fit(input_train, output_train, nb_epoch=nepochs, batch_size=32, verbose=2).history)
      self_pred = pd.DataFrame(model.predict(input_train), columns=['estimated'])
      test_pred = pd.DataFrame(model.predict(input_test), columns=['y_hat'])
      test_loss = pd.DataFrame(model.evaluate(output_test, test_pred, verbose=2))
  </code></pre>
  
  <p>However, the line <code>test_loss = pd.DataFrame(model.evaluate(output_test, test_pred, verbose=2))</code> is throwing this error:
  <code>ValueError: Error when checking model input: expected dense_input_40 to have shape (None, 3) but got array with shape (10000, 1)</code></p>
  
  <p>Shouldn't the <code>evaluate</code> method calculate the MSE error between the predictions and the actual output of the test set? </p>
  
  <p>These are what my training &amp; test inputs and outputs look like in terms of shape:</p>
  
  <pre><code>input_test.shape
  Out[152]: (10000, 3)
  output_test.shape
  Out[153]: (10000, 1)
  input_train.shape
  Out[154]: (10000, 3)
  output_train.shape
  Out[155]: (10000, 1)
  </code></pre>
  
  <p>I tried feeding the <code>model.evaluate</code> method every combination of input and output but nothing works. All my data is 10,000 rows and the input is 3 variables with 1 output that is continuous.</p>
  
  <p>I just want to compare the training loss that goes lower and lower to the test loss that should be somewhat concave like this:
  <a href="https://i.stack.imgur.com/9zWr4.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9zWr4.png" alt="enter image description here"></a></p>